/* 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__ */
|