Session

verify protocol behaviors using net-namespaces and the kernel-verifier

Speakers

Alexander Aring

Label

Nuts and Bolts

Session Type

Talk

Description

In a stateful networking protocol each participating networking entity holds a specific state during their lifetime. Such a state is usually known on a per networking entity application context and might not be shared among other entities. Using net-namespaces we can keep track of each application state during runtime in the whole distributed network scenario as an “omniscient entity” that knows everything. In combination with the kernel-verifier [0] any application workload can be used to verify expected protocol behaviors as intended by comparing each per network entity application state with each other. If the verifier runs into an unexpected protocol behavior a reaction can happen for further debugging and this offers an additional testing layer.

Currently it can be used as an additional testing mechanism for an in-kernel network protocol for distributed locking to verify protocol behaviors for any workload. In this talk I will show how I used the Linux kernel-verifier in combination with net-namespace functionality to verify expected protocol behaviors.

[0] https://www.kernel.org/doc/html/v6.13-rc6/trace/rv/index.html