]> 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)
commitf09ec3067657532f183d28870fbef2ad4d3f147d
tree4980aa913dc74d863b5bca843e6139030a188a23
parentec09f2df879737a0f24c335952ce6371e4645f28
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