On Wed, Apr 11, 2018 at 11:43:14AM -0700, Jakub Kicinski wrote: > On Wed, 11 Apr 2018 11:50:14 -0400, Michael Chan wrote: > > @@ -764,6 +788,41 @@ static bool bnxt_tc_can_offload(struct bnxt *bp, > > struct bnxt_tc_flow *flow) > > return false; > > } > > > > + /* Currently source/dest MAC cannot be partial wildcard */ > > + if (bits_set(&flow->l2_key.smac, sizeof(flow->l2_key.smac)) && > > + !is_exactmatch(flow->l2_mask.smac, sizeof(flow->l2_mask.smac))) { > > + netdev_info(bp->dev, "Wildcard match unsupported for Source > > MAC\n"); > > This wouldn't be something to do in net, but how do you feel about > using extack for messages like this? >
I agree 'net' would not have been the place for a change like that, but I do think that would be a good idea. It looks like we could easily change the ndo_setup_tc to something like this: int (*ndo_setup_tc)(struct net_device *dev, enum tc_setup_type type, void *type_data, struct netlink_ext_ack *extack); It also looks like most of the callers of ndo_setup_tc have infra in place to pass extack easily when the call is sourced from a netlink message. The others can just pass in NULL or define a local netlink_ext_ack variable for short-term use.