18b474a9fSSerhiy Boiko /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ 28b474a9fSSerhiy Boiko /* Copyright (c) 2020 Marvell International Ltd. All rights reserved. */ 38b474a9fSSerhiy Boiko 48b474a9fSSerhiy Boiko #ifndef _PRESTERA_FLOW_H_ 58b474a9fSSerhiy Boiko #define _PRESTERA_FLOW_H_ 68b474a9fSSerhiy Boiko 78b474a9fSSerhiy Boiko #include <net/flow_offload.h> 88b474a9fSSerhiy Boiko 98b474a9fSSerhiy Boiko struct prestera_port; 1047327e19SVolodymyr Mytnyk struct prestera_switch; 1147327e19SVolodymyr Mytnyk 1247327e19SVolodymyr Mytnyk struct prestera_flow_block_binding { 1347327e19SVolodymyr Mytnyk struct list_head list; 1447327e19SVolodymyr Mytnyk struct prestera_port *port; 1547327e19SVolodymyr Mytnyk int span_id; 1647327e19SVolodymyr Mytnyk }; 1747327e19SVolodymyr Mytnyk 1847327e19SVolodymyr Mytnyk struct prestera_flow_block { 1947327e19SVolodymyr Mytnyk struct list_head binding_list; 2047327e19SVolodymyr Mytnyk struct prestera_switch *sw; 2147327e19SVolodymyr Mytnyk struct net *net; 2247327e19SVolodymyr Mytnyk struct prestera_acl_ruleset *ruleset_zero; 2347327e19SVolodymyr Mytnyk struct flow_block_cb *block_cb; 24fa5d824cSVolodymyr Mytnyk struct list_head template_list; 25*44af9571SMaksym Glubokiy struct { 26*44af9571SMaksym Glubokiy u32 prio_min; 27*44af9571SMaksym Glubokiy u32 prio_max; 28*44af9571SMaksym Glubokiy bool bound; 29*44af9571SMaksym Glubokiy } mall; 30604ba230SVolodymyr Mytnyk unsigned int rule_count; 31702e7014SMaksym Glubokiy bool ingress; 3247327e19SVolodymyr Mytnyk }; 338b474a9fSSerhiy Boiko 348b474a9fSSerhiy Boiko int prestera_flow_block_setup(struct prestera_port *port, 358b474a9fSSerhiy Boiko struct flow_block_offload *f); 368b474a9fSSerhiy Boiko 378b474a9fSSerhiy Boiko #endif /* _PRESTERA_FLOW_H_ */ 38