diff options
author | Samuel Holland <samuel@sholland.org> | 2017-06-07 01:39:08 -0500 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2017-09-15 01:16:50 +0200 |
commit | 7bfd756cb395307ee779e9382d4745691cd12a0c (patch) | |
tree | 45f48c86d6dde7fc92c9fdae03838e3d445becda /src/packets.h | |
parent | timers: style (diff) | |
download | wireguard-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.h | 21 |
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 |