#include "vmxnet3_int.h"
#include <net/vxlan.h>
#include <net/geneve.h>
#include "vmxnet3_xdp.h"
#define VXLAN_UDP_PORT …
struct vmxnet3_stat_desc { … };
static const struct vmxnet3_stat_desc
vmxnet3_tq_dev_stats[] = …;
static const struct vmxnet3_stat_desc
vmxnet3_tq_driver_stats[] = …;
static const struct vmxnet3_stat_desc
vmxnet3_rq_dev_stats[] = …;
static const struct vmxnet3_stat_desc
vmxnet3_rq_driver_stats[] = …;
static const struct vmxnet3_stat_desc
vmxnet3_global_stats[] = …;
void
vmxnet3_get_stats64(struct net_device *netdev,
struct rtnl_link_stats64 *stats)
{ … }
static int
vmxnet3_get_sset_count(struct net_device *netdev, int sset)
{ … }
static int
vmxnet3_get_regs_len(struct net_device *netdev)
{ … }
static void
vmxnet3_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
{ … }
static void
vmxnet3_get_strings(struct net_device *netdev, u32 stringset, u8 *buf)
{ … }
netdev_features_t vmxnet3_fix_features(struct net_device *netdev,
netdev_features_t features)
{ … }
netdev_features_t vmxnet3_features_check(struct sk_buff *skb,
struct net_device *netdev,
netdev_features_t features)
{ … }
static void vmxnet3_enable_encap_offloads(struct net_device *netdev, netdev_features_t features)
{ … }
static void vmxnet3_disable_encap_offloads(struct net_device *netdev)
{ … }
int vmxnet3_set_features(struct net_device *netdev, netdev_features_t features)
{ … }
static void
vmxnet3_get_ethtool_stats(struct net_device *netdev,
struct ethtool_stats *stats, u64 *buf)
{ … }
static void
vmxnet3_get_regs(struct net_device *netdev, struct ethtool_regs *regs, void *p)
{ … }
static void
vmxnet3_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
{ … }
static int
vmxnet3_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
{ … }
static int
vmxnet3_get_link_ksettings(struct net_device *netdev,
struct ethtool_link_ksettings *ecmd)
{ … }
static void
vmxnet3_get_ringparam(struct net_device *netdev,
struct ethtool_ringparam *param,
struct kernel_ethtool_ringparam *kernel_param,
struct netlink_ext_ack *extack)
{ … }
static int
vmxnet3_set_ringparam(struct net_device *netdev,
struct ethtool_ringparam *param,
struct kernel_ethtool_ringparam *kernel_param,
struct netlink_ext_ack *extack)
{ … }
static int
vmxnet3_get_rss_hash_opts(struct vmxnet3_adapter *adapter,
struct ethtool_rxnfc *info)
{ … }
static int
vmxnet3_set_rss_hash_opt(struct net_device *netdev,
struct vmxnet3_adapter *adapter,
struct ethtool_rxnfc *nfc)
{ … }
static int
vmxnet3_get_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *info,
u32 *rules)
{ … }
static int
vmxnet3_set_rxnfc(struct net_device *netdev, struct ethtool_rxnfc *info)
{ … }
#ifdef VMXNET3_RSS
static u32
vmxnet3_get_rss_indir_size(struct net_device *netdev)
{ … }
static int
vmxnet3_get_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh)
{ … }
static int
vmxnet3_set_rss(struct net_device *netdev, struct ethtool_rxfh_param *rxfh,
struct netlink_ext_ack *extack)
{ … }
#endif
static int vmxnet3_get_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int vmxnet3_set_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static void vmxnet3_get_channels(struct net_device *netdev,
struct ethtool_channels *ec)
{ … }
static const struct ethtool_ops vmxnet3_ethtool_ops = …;
void vmxnet3_set_ethtool_ops(struct net_device *netdev)
{ … }