Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 878db9f0 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

pkt_cls: add new tc cls helper to check offload flag and chain index



Very few (mlxsw) upstream drivers seem to allow offload of chains
other than 0.  Save driver developers typing and add a helper for
checking both if ethtool's TC offload flag is on and if chain is 0.
This helper will set the extack appropriately in both error cases.

Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: default avatarSimon Horman <simon.horman@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fdd6d771
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -656,6 +656,20 @@ static inline bool tc_can_offload_extack(const struct net_device *dev,
	return can;
}

static inline bool
tc_cls_can_offload_and_chain0(const struct net_device *dev,
			      struct tc_cls_common_offload *common)
{
	if (!tc_can_offload_extack(dev, common->extack))
		return false;
	if (common->chain_index) {
		NL_SET_ERR_MSG(common->extack,
			       "Driver supports only offload of chain 0");
		return false;
	}
	return true;
}

static inline bool tc_skip_hw(u32 flags)
{
	return (flags & TCA_CLS_FLAGS_SKIP_HW) ? true : false;