diff options
author | Marcin Szycik <marcin.szycik@linux.intel.com> | 2023-06-22 15:35:12 +0200 |
---|---|---|
committer | Tony Nguyen <anthony.l.nguyen@intel.com> | 2023-08-07 13:01:29 -0700 |
commit | 0960a27bd479fdff21c14ff449dac85f86d7eb4d (patch) | |
tree | 1b46171445088cd71e604d05d0835fc8977d4397 /fs/drop_caches.c | |
parent | 505a1fdadac1f10b436e8bbf9a63e4e0f7b63077 (diff) | |
download | linux-stable-0960a27bd479fdff21c14ff449dac85f86d7eb4d.tar.gz linux-stable-0960a27bd479fdff21c14ff449dac85f86d7eb4d.tar.bz2 linux-stable-0960a27bd479fdff21c14ff449dac85f86d7eb4d.zip |
ice: Add direction metadata
Currently it is possible to create a filter which breaks TX traffic, e.g.:
tc filter add dev $PF1 ingress protocol ip prio 1 flower ip_proto udp
dst_port $PORT action mirred egress redirect dev $VF1_PR
This adds a rule which might match both TX and RX traffic, and in TX path
the PF will actually receive the traffic, which breaks communication.
To fix this, add a match on direction metadata flag when adding a tc rule.
Because of the way metadata is currently handled, a duplicate lookup word
would appear if VLAN metadata is also added. The lookup would still work
correctly, but one word would be wasted. To prevent it, lookup 0 now always
contains all metadata. When any metadata needs to be added, it is added to
lookup 0 and lookup count is not incremented. This way, two flags residing
in the same word will take up one word, instead of two.
Note: the drop action is also affected, i.e. it will now only work in one
direction.
Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Diffstat (limited to 'fs/drop_caches.c')
0 files changed, 0 insertions, 0 deletions