]>
Commit | Line | Data |
---|---|---|
ea651a86 VP |
1 | /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ |
2 | /* Copyright (c) 2020 Mellanox Technologies Inc. All rights reserved. */ | |
3 | ||
4 | #ifndef __MLX5_ESWITCH_ACL_OFLD_H__ | |
5 | #define __MLX5_ESWITCH_ACL_OFLD_H__ | |
6 | ||
7 | #include "eswitch.h" | |
8 | ||
1749c4c5 | 9 | #ifdef CONFIG_MLX5_ESWITCH |
ea651a86 VP |
10 | /* Eswitch acl egress external APIs */ |
11 | int esw_acl_egress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport); | |
12 | void esw_acl_egress_ofld_cleanup(struct mlx5_vport *vport); | |
014e4d48 | 13 | void esw_acl_egress_ofld_bounce_rule_destroy(struct mlx5_vport *vport, int rule_index); |
bf773dc0 VP |
14 | int mlx5_esw_acl_egress_vport_bond(struct mlx5_eswitch *esw, u16 active_vport_num, |
15 | u16 passive_vport_num); | |
16 | int mlx5_esw_acl_egress_vport_unbond(struct mlx5_eswitch *esw, u16 vport_num); | |
17 | ||
18 | static inline bool mlx5_esw_acl_egress_fwd2vport_supported(struct mlx5_eswitch *esw) | |
19 | { | |
20 | return esw && esw->mode == MLX5_ESWITCH_OFFLOADS && | |
21 | mlx5_eswitch_vport_match_metadata_enabled(esw) && | |
22 | MLX5_CAP_ESW_FLOWTABLE(esw->dev, egress_acl_forward_to_vport); | |
23 | } | |
ea651a86 | 24 | |
07bab950 VP |
25 | /* Eswitch acl ingress external APIs */ |
26 | int esw_acl_ingress_ofld_setup(struct mlx5_eswitch *esw, struct mlx5_vport *vport); | |
27 | void esw_acl_ingress_ofld_cleanup(struct mlx5_eswitch *esw, struct mlx5_vport *vport); | |
ab9fc405 RD |
28 | int mlx5_esw_acl_ingress_vport_metadata_update(struct mlx5_eswitch *esw, u16 vport_num, |
29 | u32 metadata); | |
1749c4c5 MB |
30 | void mlx5_esw_acl_ingress_vport_drop_rule_destroy(struct mlx5_eswitch *esw, u16 vport_num); |
31 | int mlx5_esw_acl_ingress_vport_drop_rule_create(struct mlx5_eswitch *esw, u16 vport_num); | |
07bab950 | 32 | |
1749c4c5 MB |
33 | #else /* CONFIG_MLX5_ESWITCH */ |
34 | static void | |
35 | mlx5_esw_acl_ingress_vport_drop_rule_destroy(struct mlx5_eswitch *esw, | |
36 | u16 vport_num) | |
37 | {} | |
38 | ||
39 | static int mlx5_esw_acl_ingress_vport_drop_rule_create(struct mlx5_eswitch *esw, | |
40 | u16 vport_num) | |
41 | { | |
42 | return 0; | |
43 | } | |
44 | #endif /* CONFIG_MLX5_ESWITCH */ | |
ea651a86 | 45 | #endif /* __MLX5_ESWITCH_ACL_OFLD_H__ */ |