#include <net/geneve.h>
#include "lib/geneve.h"
#include "en/tc_tun.h"
#define MLX5E_GENEVE_VER …
static bool mlx5e_tc_tun_can_offload_geneve(struct mlx5e_priv *priv)
{ … }
static int mlx5e_tc_tun_calc_hlen_geneve(struct mlx5e_encap_entry *e)
{ … }
static int mlx5e_tc_tun_check_udp_dport_geneve(struct mlx5e_priv *priv,
struct flow_cls_offload *f)
{ … }
static int mlx5e_tc_tun_parse_udp_ports_geneve(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec,
struct flow_cls_offload *f,
void *headers_c,
void *headers_v)
{ … }
static int mlx5e_tc_tun_init_encap_attr_geneve(struct net_device *tunnel_dev,
struct mlx5e_priv *priv,
struct mlx5e_encap_entry *e,
struct netlink_ext_ack *extack)
{ … }
static void mlx5e_tunnel_id_to_vni(__be64 tun_id, __u8 *vni)
{ … }
static int mlx5e_gen_ip_tunnel_header_geneve(char buf[],
__u8 *ip_proto,
struct mlx5e_encap_entry *e)
{ … }
static int mlx5e_tc_tun_parse_geneve_vni(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec,
struct flow_cls_offload *f)
{ … }
static int mlx5e_tc_tun_parse_geneve_options(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec,
struct flow_cls_offload *f)
{ … }
static int mlx5e_tc_tun_parse_geneve_params(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec,
struct flow_cls_offload *f)
{ … }
static int mlx5e_tc_tun_parse_geneve(struct mlx5e_priv *priv,
struct mlx5_flow_spec *spec,
struct flow_cls_offload *f,
void *headers_c,
void *headers_v)
{ … }
static bool mlx5e_tc_tun_encap_info_equal_geneve(struct mlx5e_encap_key *a,
struct mlx5e_encap_key *b)
{ … }
struct mlx5e_tc_tunnel geneve_tunnel = …;