#include "queueing.h"
#include "socket.h"
#include "timers.h"
#include "device.h"
#include "ratelimiter.h"
#include "peer.h"
#include "messages.h"
#include <linux/module.h>
#include <linux/rtnetlink.h>
#include <linux/inet.h>
#include <linux/netdevice.h>
#include <linux/inetdevice.h>
#include <linux/if_arp.h>
#include <linux/icmp.h>
#include <linux/suspend.h>
#include <net/dst_metadata.h>
#include <net/gso.h>
#include <net/icmp.h>
#include <net/rtnetlink.h>
#include <net/ip_tunnels.h>
#include <net/addrconf.h>
static LIST_HEAD(device_list);
static int wg_open(struct net_device *dev)
{ … }
static int wg_pm_notification(struct notifier_block *nb, unsigned long action, void *data)
{ … }
static struct notifier_block pm_notifier = …;
static int wg_vm_notification(struct notifier_block *nb, unsigned long action, void *data)
{ … }
static struct notifier_block vm_notifier = …;
static int wg_stop(struct net_device *dev)
{ … }
static netdev_tx_t wg_xmit(struct sk_buff *skb, struct net_device *dev)
{ … }
static const struct net_device_ops netdev_ops = …;
static void wg_destruct(struct net_device *dev)
{ … }
static const struct device_type device_type = …;
static void wg_setup(struct net_device *dev)
{ … }
static int wg_newlink(struct net *src_net, struct net_device *dev,
struct nlattr *tb[], struct nlattr *data[],
struct netlink_ext_ack *extack)
{ … }
static struct rtnl_link_ops link_ops __read_mostly = …;
static void wg_netns_pre_exit(struct net *net)
{ … }
static struct pernet_operations pernet_ops = …;
int __init wg_device_init(void)
{ … }
void wg_device_uninit(void)
{ … }