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