Skip to content

Rust Acceleration

IfState might become slow when processing a huge number of objects. This often becomes a problem when there is a large number of routes learned by a routing daemon (i.e. the BGP full routing table) or a large number of dynamic bridge entries. Although IfState does not touch routes of a routing daemons nor dynamicly learned bridge FDB entries, it needs to process and filter every entry from the kernel received via netlink.

libifstate-rs

The optional libifstate-rs python package allows IfState to offloads this filtering to a Rust implementation. This improves the performance significantly when most of the routes or bridge entries will be filtered and not processed by IfState.

You can check if Rust acceleration is available by checking the features list when running IfState in verbose mode:

$ ifstatecli -v identify
IfState 2.5.0
 features                            bpf brport ethtool iw link rust schema sysctl tc wireguard xdp
…