1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* Microchip Sparx5 Switch driver 3 * 4 * Copyright (c) 2022 Microchip Technology Inc. and its subsidiaries. 5 */ 6 7 #ifndef __SPARX5_TC_H__ 8 #define __SPARX5_TC_H__ 9 10 #include <net/flow_offload.h> 11 #include <net/pkt_cls.h> 12 #include <linux/netdevice.h> 13 14 /* Controls how PORT_MASK is applied */ 15 enum SPX5_PORT_MASK_MODE { 16 SPX5_PMM_OR_DSTMASK, 17 SPX5_PMM_AND_VLANMASK, 18 SPX5_PMM_REPLACE_PGID, 19 SPX5_PMM_REPLACE_ALL, 20 SPX5_PMM_REDIR_PGID, 21 SPX5_PMM_OR_PGID_MASK, 22 }; 23 24 int sparx5_port_setup_tc(struct net_device *ndev, enum tc_setup_type type, 25 void *type_data); 26 27 int sparx5_tc_matchall(struct net_device *ndev, 28 struct tc_cls_matchall_offload *tmo, 29 bool ingress); 30 31 int sparx5_tc_flower(struct net_device *ndev, struct flow_cls_offload *fco, 32 bool ingress); 33 34 #endif /* __SPARX5_TC_H__ */ 35