/* ################################################################################ # # am_pp.h # Copyright (C) 2021 Inango Systems Ltd. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # ################################################################################ */ /* Includes MaxLinear's changes dated: 2021, 2022. Changed portions - Copyright 2021, 2022 MaxLinear, Inc. */ #ifndef AM_PP_H #define AM_PP_H 1 #include "flow.h" #define PP_AM_ALL_PORTS_MAX ((PP_AM_EGRESS_PORTS_MAX)+1) struct datapath; enum acl_state { NOT_ACCELERATE, ACCELERATED, REMOVED, UNSUPPORTED, UNDEFINED }; int am_create_session(struct datapath *dp, struct sw_flow *flow, bool proactive_flag); int am_mod_session(struct datapath *dp, struct sw_flow *flow, struct sw_flow_actions *old_acts); int am_remove_session(struct sw_flow *flow); void am_get_session_stats(const struct sw_flow *flow, struct ovs_flow_stats *stats, unsigned long *used); void am_skb_preprocessing(pp_am_skb_process_action action, struct sw_flow *flow/*const struct sw_flow_id *ufid*/, struct sk_buff *skb); void am_skb_postprocessing(pp_am_skb_process_action action, struct sw_flow *flow/*const struct sw_flow_id *ufid*/, struct sk_buff *skb); void am_skb_postprocessing_ext(pp_am_skb_process_action action, struct sw_flow *flow, struct sk_buff *skb, void *data); int am_port_event(pp_am_port_event_type type, struct pp_am_multicast_event_msg *msg); #endif /* am_pp.h */