linux/drivers/net/ethernet/sfc/ef100_rep.c

// SPDX-License-Identifier: GPL-2.0-only
/****************************************************************************
 * Driver for Solarflare network controllers and boards
 * Copyright 2019 Solarflare Communications Inc.
 * Copyright 2020-2022 Xilinx Inc.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published
 * by the Free Software Foundation, incorporated herein by reference.
 */

#include <linux/rhashtable.h>
#include "ef100_rep.h"
#include "ef100_netdev.h"
#include "ef100_nic.h"
#include "mae.h"
#include "rx_common.h"
#include "tc_bindings.h"
#include "efx_devlink.h"

#define EFX_EF100_REP_DRIVER

#define EFX_REP_DEFAULT_PSEUDO_RING_SIZE

static int efx_ef100_rep_poll(struct napi_struct *napi, int weight);

static int efx_ef100_rep_init_struct(struct efx_nic *efx, struct efx_rep *efv,
				     unsigned int i)
{}

static int efx_ef100_rep_open(struct net_device *net_dev)
{}

static int efx_ef100_rep_close(struct net_device *net_dev)
{}

static netdev_tx_t efx_ef100_rep_xmit(struct sk_buff *skb,
				      struct net_device *dev)
{}

static int efx_ef100_rep_get_port_parent_id(struct net_device *dev,
					    struct netdev_phys_item_id *ppid)
{}

static int efx_ef100_rep_get_phys_port_name(struct net_device *dev,
					    char *buf, size_t len)
{}

static int efx_ef100_rep_setup_tc(struct net_device *net_dev,
				  enum tc_setup_type type, void *type_data)
{}

static void efx_ef100_rep_get_stats64(struct net_device *dev,
				      struct rtnl_link_stats64 *stats)
{}

const struct net_device_ops efx_ef100_rep_netdev_ops =;

static void efx_ef100_rep_get_drvinfo(struct net_device *dev,
				      struct ethtool_drvinfo *drvinfo)
{}

static u32 efx_ef100_rep_ethtool_get_msglevel(struct net_device *net_dev)
{}

static void efx_ef100_rep_ethtool_set_msglevel(struct net_device *net_dev,
					       u32 msg_enable)
{}

static void efx_ef100_rep_ethtool_get_ringparam(struct net_device *net_dev,
						struct ethtool_ringparam *ring,
						struct kernel_ethtool_ringparam *kring,
						struct netlink_ext_ack *ext_ack)
{}

static int efx_ef100_rep_ethtool_set_ringparam(struct net_device *net_dev,
					       struct ethtool_ringparam *ring,
					       struct kernel_ethtool_ringparam *kring,
					       struct netlink_ext_ack *ext_ack)
{}

static const struct ethtool_ops efx_ef100_rep_ethtool_ops =;

static struct efx_rep *efx_ef100_rep_create_netdev(struct efx_nic *efx,
						   unsigned int i)
{}

static int efx_ef100_configure_rep(struct efx_rep *efv)
{}

static void efx_ef100_deconfigure_rep(struct efx_rep *efv)
{}

static void efx_ef100_rep_destroy_netdev(struct efx_rep *efv)
{}

int efx_ef100_vfrep_create(struct efx_nic *efx, unsigned int i)
{}

void efx_ef100_vfrep_destroy(struct efx_nic *efx, struct efx_rep *efv)
{}

void efx_ef100_fini_vfreps(struct efx_nic *efx)
{}

static bool ef100_mport_is_pcie_vnic(struct mae_mport_desc *mport_desc)
{}

bool ef100_mport_on_local_intf(struct efx_nic *efx,
			       struct mae_mport_desc *mport_desc)
{}

bool ef100_mport_is_vf(struct mae_mport_desc *mport_desc)
{}

void efx_ef100_init_reps(struct efx_nic *efx)
{}

void efx_ef100_fini_reps(struct efx_nic *efx)
{}

static int efx_ef100_rep_poll(struct napi_struct *napi, int weight)
{}

void efx_ef100_rep_rx_packet(struct efx_rep *efv, struct efx_rx_buffer *rx_buf)
{}

struct efx_rep *efx_ef100_find_rep_by_mport(struct efx_nic *efx, u16 mport)
{}