#include "queueing.h"
#include "timers.h"
#include "device.h"
#include "peer.h"
#include "socket.h"
#include "messages.h"
#include "cookie.h"
#include <linux/uio.h>
#include <linux/inetdevice.h>
#include <linux/socket.h>
#include <net/ip_tunnels.h>
#include <net/udp.h>
#include <net/sock.h>
static void wg_packet_send_handshake_initiation(struct wg_peer *peer)
{ … }
void wg_packet_handshake_send_worker(struct work_struct *work)
{ … }
void wg_packet_send_queued_handshake_initiation(struct wg_peer *peer,
bool is_retry)
{ … }
void wg_packet_send_handshake_response(struct wg_peer *peer)
{ … }
void wg_packet_send_handshake_cookie(struct wg_device *wg,
struct sk_buff *initiating_skb,
__le32 sender_index)
{ … }
static void keep_key_fresh(struct wg_peer *peer)
{ … }
static unsigned int calculate_skb_padding(struct sk_buff *skb)
{ … }
static bool encrypt_packet(struct sk_buff *skb, struct noise_keypair *keypair)
{ … }
void wg_packet_send_keepalive(struct wg_peer *peer)
{ … }
static void wg_packet_create_data_done(struct wg_peer *peer, struct sk_buff *first)
{ … }
void wg_packet_tx_worker(struct work_struct *work)
{ … }
void wg_packet_encrypt_worker(struct work_struct *work)
{ … }
static void wg_packet_create_data(struct wg_peer *peer, struct sk_buff *first)
{ … }
void wg_packet_purge_staged_packets(struct wg_peer *peer)
{ … }
void wg_packet_send_staged_packets(struct wg_peer *peer)
{ … }