linux/drivers/net/ethernet/mellanox/mlxsw/spectrum_matchall.c

// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
/* Copyright (c) 2017-2020 Mellanox Technologies. All rights reserved */

#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <net/flow_offload.h>

#include "spectrum.h"
#include "spectrum_span.h"
#include "reg.h"

static struct mlxsw_sp_mall_entry *
mlxsw_sp_mall_entry_find(struct mlxsw_sp_flow_block *block, unsigned long cookie)
{}

static int
mlxsw_sp_mall_port_mirror_add(struct mlxsw_sp_port *mlxsw_sp_port,
			      struct mlxsw_sp_mall_entry *mall_entry,
			      struct netlink_ext_ack *extack)
{}

static void
mlxsw_sp_mall_port_mirror_del(struct mlxsw_sp_port *mlxsw_sp_port,
			      struct mlxsw_sp_mall_entry *mall_entry)
{}

static int mlxsw_sp_mall_port_sample_set(struct mlxsw_sp_port *mlxsw_sp_port,
					 bool enable, u32 rate)
{}

static int
mlxsw_sp_mall_port_sample_add(struct mlxsw_sp_port *mlxsw_sp_port,
			      struct mlxsw_sp_mall_entry *mall_entry,
			      struct netlink_ext_ack *extack)
{}

static void
mlxsw_sp_mall_port_sample_del(struct mlxsw_sp_port *mlxsw_sp_port,
			      struct mlxsw_sp_mall_entry *mall_entry)
{}

static int
mlxsw_sp_mall_port_rule_add(struct mlxsw_sp_port *mlxsw_sp_port,
			    struct mlxsw_sp_mall_entry *mall_entry,
			    struct netlink_ext_ack *extack)
{}

static void
mlxsw_sp_mall_port_rule_del(struct mlxsw_sp_port *mlxsw_sp_port,
			    struct mlxsw_sp_mall_entry *mall_entry)
{}

static void mlxsw_sp_mall_prio_update(struct mlxsw_sp_flow_block *block)
{}

int mlxsw_sp_mall_replace(struct mlxsw_sp *mlxsw_sp,
			  struct mlxsw_sp_flow_block *block,
			  struct tc_cls_matchall_offload *f)
{}

void mlxsw_sp_mall_destroy(struct mlxsw_sp_flow_block *block,
			   struct tc_cls_matchall_offload *f)
{}

int mlxsw_sp_mall_port_bind(struct mlxsw_sp_flow_block *block,
			    struct mlxsw_sp_port *mlxsw_sp_port,
			    struct netlink_ext_ack *extack)
{}

void mlxsw_sp_mall_port_unbind(struct mlxsw_sp_flow_block *block,
			       struct mlxsw_sp_port *mlxsw_sp_port)
{}

int mlxsw_sp_mall_prio_get(struct mlxsw_sp_flow_block *block, u32 chain_index,
			   unsigned int *p_min_prio, unsigned int *p_max_prio)
{}

static int mlxsw_sp1_mall_sample_add(struct mlxsw_sp *mlxsw_sp,
				     struct mlxsw_sp_port *mlxsw_sp_port,
				     struct mlxsw_sp_mall_entry *mall_entry,
				     struct netlink_ext_ack *extack)
{}

static void mlxsw_sp1_mall_sample_del(struct mlxsw_sp *mlxsw_sp,
				      struct mlxsw_sp_port *mlxsw_sp_port,
				      struct mlxsw_sp_mall_entry *mall_entry)
{}

const struct mlxsw_sp_mall_ops mlxsw_sp1_mall_ops =;

static int mlxsw_sp2_mall_sample_add(struct mlxsw_sp *mlxsw_sp,
				     struct mlxsw_sp_port *mlxsw_sp_port,
				     struct mlxsw_sp_mall_entry *mall_entry,
				     struct netlink_ext_ack *extack)
{}

static void mlxsw_sp2_mall_sample_del(struct mlxsw_sp *mlxsw_sp,
				      struct mlxsw_sp_port *mlxsw_sp_port,
				      struct mlxsw_sp_mall_entry *mall_entry)
{}

const struct mlxsw_sp_mall_ops mlxsw_sp2_mall_ops =;