xref: /openbmc/linux/drivers/net/ethernet/microchip/vcap/vcap_tc.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
147400aaeSHoratiu Vultur /* SPDX-License-Identifier: BSD-3-Clause */
247400aaeSHoratiu Vultur /* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries.
347400aaeSHoratiu Vultur  * Microchip VCAP TC
447400aaeSHoratiu Vultur  */
547400aaeSHoratiu Vultur 
647400aaeSHoratiu Vultur #ifndef __VCAP_TC__
747400aaeSHoratiu Vultur #define __VCAP_TC__
847400aaeSHoratiu Vultur 
947400aaeSHoratiu Vultur struct vcap_tc_flower_parse_usage {
1047400aaeSHoratiu Vultur 	struct flow_cls_offload *fco;
1147400aaeSHoratiu Vultur 	struct flow_rule *frule;
1247400aaeSHoratiu Vultur 	struct vcap_rule *vrule;
1347400aaeSHoratiu Vultur 	struct vcap_admin *admin;
1447400aaeSHoratiu Vultur 	u16 l3_proto;
1547400aaeSHoratiu Vultur 	u8 l4_proto;
16ebf44dedSSteen Hegelund 	u16 tpid;
17*2b3082c6SRatheesh Kannoth 	unsigned long long used_keys;
1847400aaeSHoratiu Vultur };
1947400aaeSHoratiu Vultur 
2047400aaeSHoratiu Vultur int vcap_tc_flower_handler_ethaddr_usage(struct vcap_tc_flower_parse_usage *st);
2147400aaeSHoratiu Vultur int vcap_tc_flower_handler_ipv4_usage(struct vcap_tc_flower_parse_usage *st);
2247400aaeSHoratiu Vultur int vcap_tc_flower_handler_ipv6_usage(struct vcap_tc_flower_parse_usage *st);
2347400aaeSHoratiu Vultur int vcap_tc_flower_handler_portnum_usage(struct vcap_tc_flower_parse_usage *st);
2447400aaeSHoratiu Vultur int vcap_tc_flower_handler_cvlan_usage(struct vcap_tc_flower_parse_usage *st);
2547400aaeSHoratiu Vultur int vcap_tc_flower_handler_vlan_usage(struct vcap_tc_flower_parse_usage *st,
2647400aaeSHoratiu Vultur 				      enum vcap_key_field vid_key,
2747400aaeSHoratiu Vultur 				      enum vcap_key_field pcp_key);
2847400aaeSHoratiu Vultur int vcap_tc_flower_handler_tcp_usage(struct vcap_tc_flower_parse_usage *st);
2947400aaeSHoratiu Vultur int vcap_tc_flower_handler_arp_usage(struct vcap_tc_flower_parse_usage *st);
3047400aaeSHoratiu Vultur int vcap_tc_flower_handler_ip_usage(struct vcap_tc_flower_parse_usage *st);
3147400aaeSHoratiu Vultur 
3247400aaeSHoratiu Vultur #endif /* __VCAP_TC__ */
33