linux/drivers/net/ethernet/intel/igc/igc_ethtool.c

// SPDX-License-Identifier: GPL-2.0
/* Copyright (c)  2018 Intel Corporation */

/* ethtool support for igc */
#include <linux/if_vlan.h>
#include <linux/pm_runtime.h>
#include <linux/mdio.h>

#include "igc.h"
#include "igc_diag.h"

/* forward declaration */
struct igc_stats {};

#define IGC_STAT(_name, _stat)

static const struct igc_stats igc_gstrings_stats[] =;

#define IGC_NETDEV_STAT(_net_stat)

static const struct igc_stats igc_gstrings_net_stats[] =;

enum igc_diagnostics_results {};

static const char igc_gstrings_test[][ETH_GSTRING_LEN] =;

#define IGC_TEST_LEN

#define IGC_GLOBAL_STATS_LEN
#define IGC_NETDEV_STATS_LEN
#define IGC_RX_QUEUE_STATS_LEN
#define IGC_TX_QUEUE_STATS_LEN
#define IGC_QUEUE_STATS_LEN
#define IGC_STATS_LEN

static const char igc_priv_flags_strings[][ETH_GSTRING_LEN] =;

#define IGC_PRIV_FLAGS_STR_LEN

static void igc_ethtool_get_drvinfo(struct net_device *netdev,
				    struct ethtool_drvinfo *drvinfo)
{}

static int igc_ethtool_get_regs_len(struct net_device *netdev)
{}

static void igc_ethtool_get_regs(struct net_device *netdev,
				 struct ethtool_regs *regs, void *p)
{}

static void igc_ethtool_get_wol(struct net_device *netdev,
				struct ethtool_wolinfo *wol)
{}

static int igc_ethtool_set_wol(struct net_device *netdev,
			       struct ethtool_wolinfo *wol)
{}

static u32 igc_ethtool_get_msglevel(struct net_device *netdev)
{}

static void igc_ethtool_set_msglevel(struct net_device *netdev, u32 data)
{}

static int igc_ethtool_nway_reset(struct net_device *netdev)
{}

static u32 igc_ethtool_get_link(struct net_device *netdev)
{}

static int igc_ethtool_get_eeprom_len(struct net_device *netdev)
{}

static int igc_ethtool_get_eeprom(struct net_device *netdev,
				  struct ethtool_eeprom *eeprom, u8 *bytes)
{}

static int igc_ethtool_set_eeprom(struct net_device *netdev,
				  struct ethtool_eeprom *eeprom, u8 *bytes)
{}

static void
igc_ethtool_get_ringparam(struct net_device *netdev,
			  struct ethtool_ringparam *ring,
			  struct kernel_ethtool_ringparam *kernel_ering,
			  struct netlink_ext_ack *extack)
{}

static int
igc_ethtool_set_ringparam(struct net_device *netdev,
			  struct ethtool_ringparam *ring,
			  struct kernel_ethtool_ringparam *kernel_ering,
			  struct netlink_ext_ack *extack)
{}

static void igc_ethtool_get_pauseparam(struct net_device *netdev,
				       struct ethtool_pauseparam *pause)
{}

static int igc_ethtool_set_pauseparam(struct net_device *netdev,
				      struct ethtool_pauseparam *pause)
{}

static void igc_ethtool_get_strings(struct net_device *netdev, u32 stringset,
				    u8 *data)
{}

static int igc_ethtool_get_sset_count(struct net_device *netdev, int sset)
{}

static void igc_ethtool_get_stats(struct net_device *netdev,
				  struct ethtool_stats *stats, u64 *data)
{}

static int igc_ethtool_get_previous_rx_coalesce(struct igc_adapter *adapter)
{}

static int igc_ethtool_get_previous_tx_coalesce(struct igc_adapter *adapter)
{}

static int igc_ethtool_get_coalesce(struct net_device *netdev,
				    struct ethtool_coalesce *ec,
				    struct kernel_ethtool_coalesce *kernel_coal,
				    struct netlink_ext_ack *extack)
{}

static int igc_ethtool_set_coalesce(struct net_device *netdev,
				    struct ethtool_coalesce *ec,
				    struct kernel_ethtool_coalesce *kernel_coal,
				    struct netlink_ext_ack *extack)
{}

#define ETHER_TYPE_FULL_MASK
#define VLAN_TCI_FULL_MASK
static int igc_ethtool_get_nfc_rule(struct igc_adapter *adapter,
				    struct ethtool_rxnfc *cmd)
{}

static int igc_ethtool_get_nfc_rules(struct igc_adapter *adapter,
				     struct ethtool_rxnfc *cmd,
				     u32 *rule_locs)
{}

static int igc_ethtool_get_rss_hash_opts(struct igc_adapter *adapter,
					 struct ethtool_rxnfc *cmd)
{}

static int igc_ethtool_get_rxnfc(struct net_device *dev,
				 struct ethtool_rxnfc *cmd, u32 *rule_locs)
{}

#define UDP_RSS_FLAGS
static int igc_ethtool_set_rss_hash_opt(struct igc_adapter *adapter,
					struct ethtool_rxnfc *nfc)
{}

static void igc_ethtool_init_nfc_rule(struct igc_nfc_rule *rule,
				      const struct ethtool_rx_flow_spec *fsp)
{}

/**
 * igc_ethtool_check_nfc_rule() - Check if NFC rule is valid
 * @adapter: Pointer to adapter
 * @rule: Rule under evaluation
 *
 * The driver doesn't support rules with multiple matches so if more than
 * one bit in filter flags is set, @rule is considered invalid.
 *
 * Also, if there is already another rule with the same filter in a different
 * location, @rule is considered invalid.
 *
 * Context: Expects adapter->nfc_rule_lock to be held by caller.
 *
 * Return: 0 in case of success, negative errno code otherwise.
 */
static int igc_ethtool_check_nfc_rule(struct igc_adapter *adapter,
				      struct igc_nfc_rule *rule)
{}

static int igc_ethtool_add_nfc_rule(struct igc_adapter *adapter,
				    struct ethtool_rxnfc *cmd)
{}

static int igc_ethtool_del_nfc_rule(struct igc_adapter *adapter,
				    struct ethtool_rxnfc *cmd)
{}

static int igc_ethtool_set_rxnfc(struct net_device *dev,
				 struct ethtool_rxnfc *cmd)
{}

void igc_write_rss_indir_tbl(struct igc_adapter *adapter)
{}

static u32 igc_ethtool_get_rxfh_indir_size(struct net_device *netdev)
{}

static int igc_ethtool_get_rxfh(struct net_device *netdev,
				struct ethtool_rxfh_param *rxfh)
{}

static int igc_ethtool_set_rxfh(struct net_device *netdev,
				struct ethtool_rxfh_param *rxfh,
				struct netlink_ext_ack *extack)
{}

static void igc_ethtool_get_channels(struct net_device *netdev,
				     struct ethtool_channels *ch)
{}

static int igc_ethtool_set_channels(struct net_device *netdev,
				    struct ethtool_channels *ch)
{}

static int igc_ethtool_get_ts_info(struct net_device *dev,
				   struct kernel_ethtool_ts_info *info)
{}

static u32 igc_ethtool_get_priv_flags(struct net_device *netdev)
{}

static int igc_ethtool_set_priv_flags(struct net_device *netdev, u32 priv_flags)
{}

static int igc_ethtool_get_eee(struct net_device *netdev,
			       struct ethtool_keee *edata)
{}

static int igc_ethtool_set_eee(struct net_device *netdev,
			       struct ethtool_keee *edata)
{}

static int igc_ethtool_get_link_ksettings(struct net_device *netdev,
					  struct ethtool_link_ksettings *cmd)
{}

static int
igc_ethtool_set_link_ksettings(struct net_device *netdev,
			       const struct ethtool_link_ksettings *cmd)
{}

static void igc_ethtool_diag_test(struct net_device *netdev,
				  struct ethtool_test *eth_test, u64 *data)
{}

static const struct ethtool_ops igc_ethtool_ops =;

void igc_ethtool_set_ops(struct net_device *netdev)
{}