/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ /* Copyright (c) 2019 Mellanox Technologies. */ #ifndef __MLX5_GENEVE_H__ #define __MLX5_GENEVE_H__ #include <net/geneve.h> #include <linux/mlx5/driver.h> struct mlx5_geneve; #ifdef CONFIG_MLX5_ESWITCH struct mlx5_geneve *mlx5_geneve_create(struct mlx5_core_dev *mdev); void mlx5_geneve_destroy(struct mlx5_geneve *geneve); int mlx5_geneve_tlv_option_add(struct mlx5_geneve *geneve, struct geneve_opt *opt); void mlx5_geneve_tlv_option_del(struct mlx5_geneve *geneve); #else /* CONFIG_MLX5_ESWITCH */ static inline struct mlx5_geneve *mlx5_geneve_create(struct mlx5_core_dev *mdev) { return NULL; } static inline void mlx5_geneve_destroy(struct mlx5_geneve *geneve) {} static inline int mlx5_geneve_tlv_option_add(struct mlx5_geneve *geneve, struct geneve_opt *opt) { return 0; } static inline void mlx5_geneve_tlv_option_del(struct mlx5_geneve *geneve) {} #endif /* CONFIG_MLX5_ESWITCH */ #endif /* __MLX5_GENEVE_H__ */