Hi all,
Are there plans to add support for modifying rules using the rte_flow API ?
The first problem with destroy+create is atomicity. During the process
some packets will get lost.
Then the second problem is performance. We measured Mellanox CX5 (mlx5
driver) to be able to "update" at best 2K rules/sec, but that drops to
200 rules/sec when updating TC rules ("transfer" rules, to switch
packets between VFs). Real support for update should boost those numbers.
I saw the ibverbs API backing the mlx5 supports updating the action of a
rule. This would already solve a lot of use cases. Eg, changing
destination queue(s) of some rules. Given that mlx5 does not support
changing global RSS queues without restarting the device, this would
also solve re-balancing issue by using rte_flow.
Then, beyond updating only the action of a rule, some researchers have
shown[1] that updating rules patterns data instead of creating and
deleting rules with similar patterns improve drastically the
performance. Eg that could be very interesting to accelerate the
offloading of OVS's flow cache (5-tuples), or similar setups.
Thanks,
Tom
[1] Turboflow: information rich flow record generation on commodity
switches, J Sonchack et al.