1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2/* Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */
3
4#ifndef __MLX5_POST_ACTION_H__
5#define __MLX5_POST_ACTION_H__
6
7#include "en.h"
8#include "lib/fs_chains.h"
9
10struct mlx5_flow_attr;
11struct mlx5e_priv;
12struct mlx5e_tc_mod_hdr_acts;
13
14struct mlx5e_post_act *
15mlx5e_tc_post_act_init(struct mlx5e_priv *priv, struct mlx5_fs_chains *chains,
16 enum mlx5_flow_namespace_type ns_type);
17
18void
19mlx5e_tc_post_act_destroy(struct mlx5e_post_act *post_act);
20
21struct mlx5e_post_act_handle *
22mlx5e_tc_post_act_add(struct mlx5e_post_act *post_act, struct mlx5_flow_attr *post_attr);
23
24void
25mlx5e_tc_post_act_del(struct mlx5e_post_act *post_act, struct mlx5e_post_act_handle *handle);
26
27int
28mlx5e_tc_post_act_offload(struct mlx5e_post_act *post_act,
29 struct mlx5e_post_act_handle *handle);
30
31void
32mlx5e_tc_post_act_unoffload(struct mlx5e_post_act *post_act,
33 struct mlx5e_post_act_handle *handle);
34
35struct mlx5_flow_table *
36mlx5e_tc_post_act_get_ft(struct mlx5e_post_act *post_act);
37
38int
39mlx5e_tc_post_act_set_handle(struct mlx5_core_dev *dev,
40 struct mlx5e_post_act_handle *handle,
41 struct mlx5e_tc_mod_hdr_acts *acts);
42
43#endif /* __MLX5_POST_ACTION_H__ */
44

source code of linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.h