1 /* SPDX-License-Identifier: BSD-3-Clause */ 2 /* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries. 3 * Microchip VCAP TC 4 */ 5 6 #ifndef __VCAP_TC__ 7 #define __VCAP_TC__ 8 9 struct vcap_tc_flower_parse_usage { 10 struct flow_cls_offload *fco; 11 struct flow_rule *frule; 12 struct vcap_rule *vrule; 13 struct vcap_admin *admin; 14 u16 l3_proto; 15 u8 l4_proto; 16 u16 tpid; 17 unsigned long long used_keys; 18 }; 19 20 int vcap_tc_flower_handler_ethaddr_usage(struct vcap_tc_flower_parse_usage *st); 21 int vcap_tc_flower_handler_ipv4_usage(struct vcap_tc_flower_parse_usage *st); 22 int vcap_tc_flower_handler_ipv6_usage(struct vcap_tc_flower_parse_usage *st); 23 int vcap_tc_flower_handler_portnum_usage(struct vcap_tc_flower_parse_usage *st); 24 int vcap_tc_flower_handler_cvlan_usage(struct vcap_tc_flower_parse_usage *st); 25 int vcap_tc_flower_handler_vlan_usage(struct vcap_tc_flower_parse_usage *st, 26 enum vcap_key_field vid_key, 27 enum vcap_key_field pcp_key); 28 int vcap_tc_flower_handler_tcp_usage(struct vcap_tc_flower_parse_usage *st); 29 int vcap_tc_flower_handler_arp_usage(struct vcap_tc_flower_parse_usage *st); 30 int vcap_tc_flower_handler_ip_usage(struct vcap_tc_flower_parse_usage *st); 31 32 #endif /* __VCAP_TC__ */ 33