162306a36Sopenharmony_ci/* SPDX-License-Identifier: BSD-3-Clause */ 262306a36Sopenharmony_ci/* Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries. 362306a36Sopenharmony_ci * Microchip VCAP TC 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef __VCAP_TC__ 762306a36Sopenharmony_ci#define __VCAP_TC__ 862306a36Sopenharmony_ci 962306a36Sopenharmony_cistruct vcap_tc_flower_parse_usage { 1062306a36Sopenharmony_ci struct flow_cls_offload *fco; 1162306a36Sopenharmony_ci struct flow_rule *frule; 1262306a36Sopenharmony_ci struct vcap_rule *vrule; 1362306a36Sopenharmony_ci struct vcap_admin *admin; 1462306a36Sopenharmony_ci u16 l3_proto; 1562306a36Sopenharmony_ci u8 l4_proto; 1662306a36Sopenharmony_ci u16 tpid; 1762306a36Sopenharmony_ci unsigned long long used_keys; 1862306a36Sopenharmony_ci}; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciint vcap_tc_flower_handler_ethaddr_usage(struct vcap_tc_flower_parse_usage *st); 2162306a36Sopenharmony_ciint vcap_tc_flower_handler_ipv4_usage(struct vcap_tc_flower_parse_usage *st); 2262306a36Sopenharmony_ciint vcap_tc_flower_handler_ipv6_usage(struct vcap_tc_flower_parse_usage *st); 2362306a36Sopenharmony_ciint vcap_tc_flower_handler_portnum_usage(struct vcap_tc_flower_parse_usage *st); 2462306a36Sopenharmony_ciint vcap_tc_flower_handler_cvlan_usage(struct vcap_tc_flower_parse_usage *st); 2562306a36Sopenharmony_ciint vcap_tc_flower_handler_vlan_usage(struct vcap_tc_flower_parse_usage *st, 2662306a36Sopenharmony_ci enum vcap_key_field vid_key, 2762306a36Sopenharmony_ci enum vcap_key_field pcp_key); 2862306a36Sopenharmony_ciint vcap_tc_flower_handler_tcp_usage(struct vcap_tc_flower_parse_usage *st); 2962306a36Sopenharmony_ciint vcap_tc_flower_handler_arp_usage(struct vcap_tc_flower_parse_usage *st); 3062306a36Sopenharmony_ciint vcap_tc_flower_handler_ip_usage(struct vcap_tc_flower_parse_usage *st); 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#endif /* __VCAP_TC__ */ 33