#include "aq_main.h"
#include "aq_nic.h"
#include "aq_pci_func.h"
#include "aq_ethtool.h"
#include "aq_ptp.h"
#include "aq_filters.h"
#include "aq_hw_utils.h"
#include "aq_vec.h"
#include <linux/netdevice.h>
#include <linux/module.h>
#include <linux/ip.h>
#include <linux/udp.h>
#include <net/pkt_cls.h>
#include <net/pkt_sched.h>
#include <linux/filter.h>
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
DEFINE_STATIC_KEY_FALSE(aq_xdp_locking_key);
EXPORT_SYMBOL(…);
static const char aq_ndev_driver_name[] = …;
static const struct net_device_ops aq_ndev_ops;
static struct workqueue_struct *aq_ndev_wq;
void aq_ndev_schedule_work(struct work_struct *work)
{ … }
struct net_device *aq_ndev_alloc(void)
{ … }
int aq_ndev_open(struct net_device *ndev)
{ … }
int aq_ndev_close(struct net_device *ndev)
{ … }
static netdev_tx_t aq_ndev_start_xmit(struct sk_buff *skb, struct net_device *ndev)
{ … }
static int aq_ndev_change_mtu(struct net_device *ndev, int new_mtu)
{ … }
static int aq_ndev_set_features(struct net_device *ndev,
netdev_features_t features)
{ … }
static netdev_features_t aq_ndev_fix_features(struct net_device *ndev,
netdev_features_t features)
{ … }
static int aq_ndev_set_mac_address(struct net_device *ndev, void *addr)
{ … }
static void aq_ndev_set_multicast_settings(struct net_device *ndev)
{ … }
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
static int aq_ndev_config_hwtstamp(struct aq_nic_s *aq_nic,
struct hwtstamp_config *config)
{ … }
#endif
static int aq_ndev_hwtstamp_set(struct aq_nic_s *aq_nic, struct ifreq *ifr)
{ … }
#if IS_REACHABLE(CONFIG_PTP_1588_CLOCK)
static int aq_ndev_hwtstamp_get(struct aq_nic_s *aq_nic, struct ifreq *ifr)
{ … }
#endif
static int aq_ndev_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
{ … }
static int aq_ndo_vlan_rx_add_vid(struct net_device *ndev, __be16 proto,
u16 vid)
{ … }
static int aq_ndo_vlan_rx_kill_vid(struct net_device *ndev, __be16 proto,
u16 vid)
{ … }
static int aq_validate_mqprio_opt(struct aq_nic_s *self,
struct tc_mqprio_qopt_offload *mqprio,
const unsigned int num_tc)
{ … }
static int aq_ndo_setup_tc(struct net_device *dev, enum tc_setup_type type,
void *type_data)
{ … }
static int aq_xdp_setup(struct net_device *ndev, struct bpf_prog *prog,
struct netlink_ext_ack *extack)
{ … }
static int aq_xdp(struct net_device *dev, struct netdev_bpf *xdp)
{ … }
static const struct net_device_ops aq_ndev_ops = …;
static int __init aq_ndev_init_module(void)
{ … }
static void __exit aq_ndev_exit_module(void)
{ … }
module_init(…) …;
module_exit(aq_ndev_exit_module);