aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/packets.h
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-06-07 01:39:08 -0500
committerJason A. Donenfeld <Jason@zx2c4.com>2017-09-15 01:16:50 +0200
commit7bfd756cb395307ee779e9382d4745691cd12a0c (patch)
tree45f48c86d6dde7fc92c9fdae03838e3d445becda /src/packets.h
parenttimers: style (diff)
downloadwireguard-monolithic-historical-7bfd756cb395307ee779e9382d4745691cd12a0c.tar.xz
wireguard-monolithic-historical-7bfd756cb395307ee779e9382d4745691cd12a0c.zip
queues: entirely rework parallel system
This removes our dependency on padata. Signed-off-by: Samuel Holland <samuel@sholland.org>
Diffstat (limited to 'src/packets.h')
-rw-r--r--src/packets.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/packets.h b/src/packets.h
index c956c7a..6601ef6 100644
--- a/src/packets.h
+++ b/src/packets.h
@@ -8,7 +8,6 @@
#include "socket.h"
#include <linux/types.h>
-#include <linux/padata.h>
#include <linux/skbuff.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
@@ -27,19 +26,26 @@ struct packet_cb {
void packet_receive(struct wireguard_device *wg, struct sk_buff *skb);
void packet_process_queued_handshake_packets(struct work_struct *work);
void packet_consume_data_done(struct sk_buff *skb, struct wireguard_peer *peer, struct endpoint *endpoint, bool used_new_key);
+void packet_receive_worker(struct work_struct *work);
+void packet_decrypt_worker(struct work_struct *work);
+void packet_consume_data(struct sk_buff *skb, struct wireguard_device *wg);
/* send.c */
-void packet_send_queue(struct wireguard_peer *peer);
+void keep_key_fresh_send(struct wireguard_peer *peer);
void packet_send_keepalive(struct wireguard_peer *peer);
void packet_queue_handshake_initiation(struct wireguard_peer *peer, bool is_retry);
void packet_send_queued_handshakes(struct work_struct *work);
void packet_send_handshake_response(struct wireguard_peer *peer);
void packet_send_handshake_cookie(struct wireguard_device *wg, struct sk_buff *initiating_skb, __le32 sender_index);
-void packet_create_data_done(struct sk_buff_head *queue, struct wireguard_peer *peer);
+void packet_send_worker(struct work_struct *work);
+void packet_encrypt_worker(struct work_struct *work);
+void packet_init_worker(struct work_struct *work);
+void packet_create_data(struct wireguard_peer *peer, struct sk_buff_head *packets);
/* data.c */
-int packet_create_data(struct sk_buff_head *queue, struct wireguard_peer *peer);
-void packet_consume_data(struct sk_buff *skb, struct wireguard_device *wg);
+int init_crypt_cache(void);
+void deinit_crypt_cache(void);
+void peer_purge_queues(struct wireguard_peer *peer);
/* Returns either the correct skb->protocol value, or 0 if invalid. */
static inline __be16 skb_examine_untrusted_ip_hdr(struct sk_buff *skb)
@@ -51,11 +57,6 @@ static inline __be16 skb_examine_untrusted_ip_hdr(struct sk_buff *skb)
return 0;
}
-#ifdef CONFIG_WIREGUARD_PARALLEL
-int packet_init_data_caches(void);
-void packet_deinit_data_caches(void);
-#endif
-
#ifdef DEBUG
bool packet_counter_selftest(void);
#endif