1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2/* Copyright (c) 2019 Mellanox Technologies. */
3
4#ifndef __MLX5_GENEVE_H__
5#define __MLX5_GENEVE_H__
6
7#include <net/geneve.h>
8#include <linux/mlx5/driver.h>
9
10struct mlx5_geneve;
11
12#ifdef CONFIG_MLX5_ESWITCH
13
14struct mlx5_geneve *mlx5_geneve_create(struct mlx5_core_dev *mdev);
15void mlx5_geneve_destroy(struct mlx5_geneve *geneve);
16
17int mlx5_geneve_tlv_option_add(struct mlx5_geneve *geneve, struct geneve_opt *opt);
18void mlx5_geneve_tlv_option_del(struct mlx5_geneve *geneve);
19
20#else /* CONFIG_MLX5_ESWITCH */
21
22static inline struct mlx5_geneve
23*mlx5_geneve_create(struct mlx5_core_dev *mdev) { return NULL; }
24static inline void
25mlx5_geneve_destroy(struct mlx5_geneve *geneve) {}
26static inline int
27mlx5_geneve_tlv_option_add(struct mlx5_geneve *geneve, struct geneve_opt *opt) { return 0; }
28static inline void
29mlx5_geneve_tlv_option_del(struct mlx5_geneve *geneve) {}
30
31#endif /* CONFIG_MLX5_ESWITCH */
32
33#endif /* __MLX5_GENEVE_H__ */
34