]> git.baikalelectronics.ru Git - kernel.git/commit
cls_flower: Support multiple masks per priority
authorPaul Blakey <paulb@mellanox.com>
Mon, 30 Apr 2018 11:28:30 +0000 (14:28 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 May 2018 18:14:15 +0000 (14:14 -0400)
commit07fcd89c44b11a7e7cfcf22a148183e9104853da
tree4980aa913dc74d863b5bca843e6139030a188a23
parent9a5c0f6330552cf4d97583606c2afc6daeb4ac04
cls_flower: Support multiple masks per priority

Currently flower doesn't support inserting filters with different masks
on a single priority, even if the actual flows (key + mask) inserted
aren't overlapping, as with the use case of offloading openvswitch
datapath flows. Instead one must go up one level, and assign different
priorities for each mask, which will create a different flower
instances.

This patch opens flower to support more than one mask per priority,
and a single flower instance. It does so by adding another hash table
on top of the existing one which will store the different masks,
and the filters that share it.

The user is left with the responsibility of ensuring non overlapping
flows, otherwise precedence is not guaranteed.

Signed-off-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_flower.c