net: rework setup_tc ndo op to consume general tc operand
This patch updates setup_tc so we can pass additional parameters into the ndo op in a generic way. To do this we provide structured union and type flag. This lets each classifier and qdisc provide its own set of attributes without having to add new ndo ops or grow the signature of the callback. Signed-off-by: John Fastabend <john.r.fastabend@intel.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
e4c6734eaa
commit
16e5cc6471
@@ -1626,15 +1626,18 @@ static void xgbe_poll_controller(struct net_device *netdev)
|
||||
}
|
||||
#endif /* End CONFIG_NET_POLL_CONTROLLER */
|
||||
|
||||
static int xgbe_setup_tc(struct net_device *netdev, u32 handle, u8 tc)
|
||||
static int xgbe_setup_tc(struct net_device *netdev, u32 handle, __be16 proto,
|
||||
struct tc_to_netdev *tc_to_netdev)
|
||||
{
|
||||
struct xgbe_prv_data *pdata = netdev_priv(netdev);
|
||||
unsigned int offset, queue;
|
||||
u8 i;
|
||||
u8 i, tc;
|
||||
|
||||
if (handle != TC_H_ROOT)
|
||||
if (handle != TC_H_ROOT || tc_to_netdev->type != TC_SETUP_MQPRIO)
|
||||
return -EINVAL;
|
||||
|
||||
tc = tc_to_netdev->tc;
|
||||
|
||||
if (tc && (tc != pdata->hw_feat.tc_cnt))
|
||||
return -EINVAL;
|
||||
|
||||
|
Reference in New Issue
Block a user