Speakers

Speakers

Jakub Kicinski

Matthieu Baerts

Willem de Bruijn

Kuniyuki Iwashima

Jason Xing

Eric Dumazet

Ido Schimmel

Sabrina Dubroca

Daniel Borkmann

John Fastabend

Alexander Lobakin

Paolo Abeni

QUIC in kernel

Jakub Kicinski

Notes: Paolo, Sabrina, Matt

Testing:

YNL:

Private drivers (we cannot buy the HW in store):

Matthieu Baerts

Notes: Willem

Topic: Netdev CI and NIPA

Patchwork for maintainers, not developers:

  1. Don’t want people to start relying on the test infra for their correctness: test internally first
  2. Output can be unclear: not every failure is problematic. People might send too often, fixing unimportant things.

About sending emails: Question about BPF test infra: concerns about sending too many messages to the list. Unlike kbuild, these failures are not necessarily hard blockers.

Coverage: Are there subsystems that currently have little to no coverage? We don’t have GCC coverage instrumentation. For MPTCP, Paolo had a look, most of the regular (i.e., non error) was covered.

Flaky tests: are being ignored. How to get them to pass. Jakub sends a summary to the mailing list occasionally.

Reproduce locally: can use virtme-ng? Or build docker image. But may need bleeding edge versions of userspace tools, e.g., iproute2. Devs mention this in the commit message.

Is it useful to make this generally available? Yes, for reproducing issues, for developing on NIPA, and for presubmit testing before even sending patches upstream.

Funding: Allow testing before submission, may also make it easier to get funding from more companies. Nvidia already uses Intel’s infra (?). Waits for nightly results before submitting upstream. What is the overhead of setting up something like the BPF foundation? A meeting every two weeks.

How to expand to other subsystems: reuse NIPA, build from scratch? MPTCP uses Github Actions, non-trivial to setup. Could we have something reusable perhaps hosted by the Linux Foundation, like patchwork. What we want is a dashboard that shows KTAP: a matrix of tests * runs.

Stable versions: kselftests should support all previous versions. Linaro LKFT already runs kselftests from HEAD against stable kernels. Skip if a feature is not supported. Can be hard to do: example is packetdrill, where subtle changes deep in the TCP stack can affect behavior of many packetdrill tests. Alternative: send selftests that accompany bug fixes to stable. The tests are being accepted to stable too. So ask for an opt-out for this test-stable-from-HEAD policy for networking.

Test output: recommendation for new tests to generate KTAP. Can use ktap_helpers.sh for new shell-based tests. Or roll your own, the format is fairly straightforward: https://docs.kernel.org/dev-tools/ktap.html . But note that NIPA and LKFT parse TAP13, from which KTAP v1 slightly diverges.

Code reuse: move more code into net/lib or even under kselftests, like MPTCP code. Unclear who maintains the code under kselftests.

Willem de Bruijn

Notes: Paolo, Matthieu

Topic: Testing and scaling

Reviews:

Precondition checks in kernel code:

Expanding kselftests: benchmarks and fault-injection:

Scaling:

        

A lot of work in the shared memory area.

Kuniyuki Iwashima

Notes: Sabrina, Paolo

Topic: Per Netns RTNL

Jason Xing

Topic: Extending SO_TIMESTAMPING feature

Willem/John: use a bpf cgroup hook to attach a bpf program to collect aggregate stats/histograms (we do not want to push to userspace the full tx stream),

The google use case is to track (sampling) the lifecycle, latency, etc of RPC across different hosts

Jakub: we need an end-to-end implementation, from packet transmission to actual timestamp collection and usage.

Eric: the timestamping APIs are inherently racy because it touches socket fields and can’t acquire the socket lock

Eric Dumazet

Topic: UDP, TCP

UDP

TCP socket lock

BIG TCP

syzbot

Jumbo and beyond?

Ido Schimmel

Topic: DSCP matching, IPMR extension, XDP metadata for telemetry

Multipath hash seed:

Transceiver module firmware update:

DSCP matching:

XDP metadata for telemetry:

Drop reasons

Sabrina Dubroca

Topic: macsec offload, semi-automated validation for uapi patches

macsec offload:

semi-automated validation for UAPI patches:

Daniel Borkmann

Topic: Overlapping TProxy with non-local bind + Wireguard + BIG TCP

Overlapping TProxy with non-local bind:

Benchmarking over the wire for wireguard, cow data on decrypt looks very expansive in the flamegraph:

Big TCP:

John Fastabend

Topic: DPU use cases for Cilium, proposed programming API

DPUs have a bunch of general purpose CPUs used to offer different services (ipsec,tls,...)

Exposed in vendor specific ways (sdk)

Frequent use-case: custom hdr above UDP with sequence nr and token. Such proto/hdr is not going to be added to the kernel, need to filter/do admission control based on custom hdr fields.

The usual workflow is: write the parser in DSL, configure the device, compile the parser for the backend (device specific) upload and reboot.

Want to avoid another SW layer in the kernel to emulate the HW.

Want to build:

The problem is how to express tcam entries manipulation, e.g. p4, ovs, something similar

Willem: what about the update: is the interface going to be a bottleneck? Perhaps direct mapping of the CAM could/should be needed?

Willem: the DPU could be modeled as a switch with multiple ports (host side/wire side)

You can use the free cores on DPUs for more funky stuff like TCP reordering, but we don’t need kernel interfaces for such kind of stuff - it’s like s/w running on a different host.

Alexander Lobakin

Topic: netdevice related

Paolo Abeni

Topic: Dealing with double/nested UDP tunnel

QUIC in kernel