wg_peer
static struct wg_peer *lookup(struct allowedips_node __rcu *root, u8 bits,
struct wg_peer *peer = NULL;
u8 cidr, struct wg_peer *peer, struct mutex *lock)
u8 cidr, struct wg_peer *peer, struct mutex *lock)
u8 cidr, struct wg_peer *peer, struct mutex *lock)
u8 cidr, struct wg_peer *peer, struct mutex *lock)
u8 cidr, struct wg_peer *peer, struct mutex *lock)
u8 cidr, struct wg_peer *peer, struct mutex *lock)
struct wg_peer *peer, struct mutex *lock)
struct wg_peer *wg_allowedips_lookup_dst(struct allowedips *table,
struct wg_peer *wg_allowedips_lookup_src(struct allowedips *table,
struct wg_peer;
struct wg_peer __rcu *peer;
u8 cidr, struct wg_peer *peer, struct mutex *lock);
u8 cidr, struct wg_peer *peer, struct mutex *lock);
u8 cidr, struct wg_peer *peer, struct mutex *lock);
u8 cidr, struct wg_peer *peer, struct mutex *lock);
struct wg_peer *peer, struct mutex *lock);
struct wg_peer *wg_allowedips_lookup_dst(struct allowedips *table,
struct wg_peer *wg_allowedips_lookup_src(struct allowedips *table,
struct wg_peer *peer)
struct wg_peer *peer = NULL;
void wg_cookie_checker_precompute_peer_keys(struct wg_peer *peer)
struct wg_peer;
void wg_cookie_checker_precompute_peer_keys(struct wg_peer *peer);
struct wg_peer *peer);
struct wg_peer *peer;
struct wg_peer *peer;
struct wg_peer *peer;
struct wg_peer *peer;
struct wg_peer *peer;
struct wg_peer *peer;
struct wg_peer *peer, *next_peer_cursor;
struct wg_peer *peer;
static int set_allowedip(struct wg_peer *peer, struct nlattr **attrs)
struct wg_peer *peer = NULL;
struct wg_peer *peer;
struct wg_peer *peer, *temp;
struct wg_peer *next_peer;
get_peer(struct wg_peer *peer, struct sk_buff *skb, struct dump_ctx *ctx)
void wg_noise_expire_current_peer_keypairs(struct wg_peer *peer)
void wg_noise_precompute_static_static(struct wg_peer *peer)
struct wg_peer *
struct wg_peer *peer = NULL, *ret_peer = NULL;
struct wg_peer *peer)
struct wg_peer *
struct wg_peer *peer = NULL, *ret_peer = NULL;
if (likely(!READ_ONCE(container_of(handshake, struct wg_peer,
static struct noise_keypair *keypair_create(struct wg_peer *peer)
void wg_noise_expire_current_peer_keypairs(struct wg_peer *peer);
void wg_noise_precompute_static_static(struct wg_peer *peer);
struct wg_peer *
struct wg_peer *
struct wg_peer *peer);
void wg_peer_remove(struct wg_peer *peer)
struct wg_peer *peer, *temp;
struct wg_peer *peer = container_of(rcu, struct wg_peer, rcu);
struct wg_peer *peer = container_of(refcount, struct wg_peer, refcount);
struct wg_peer *wg_peer_create(struct wg_device *wg,
void wg_peer_put(struct wg_peer *peer)
peer_cache = KMEM_CACHE(wg_peer, 0);
struct wg_peer *peer;
struct wg_peer *wg_peer_get_maybe_zero(struct wg_peer *peer)
static void peer_make_dead(struct wg_peer *peer)
static void peer_remove_after_dead(struct wg_peer *peer)
struct wg_peer *wg_peer_create(struct wg_device *wg,
struct wg_peer *__must_check wg_peer_get_maybe_zero(struct wg_peer *peer);
static inline struct wg_peer *wg_peer_get(struct wg_peer *peer)
void wg_peer_put(struct wg_peer *peer);
void wg_peer_remove(struct wg_peer *peer);
const __le32 index, struct wg_peer **peer)
struct wg_peer *peer)
struct wg_peer *peer)
struct wg_peer *
struct wg_peer *iter_peer, *peer = NULL;
struct wg_peer;
struct wg_peer *peer);
struct wg_peer *peer);
struct wg_peer *
struct wg_peer *peer;
const __le32 index, struct wg_peer **peer);
struct wg_peer;
struct wg_peer *peer = wg_peer_get(PACKET_PEER(skb));
struct wg_peer *peer = wg_peer_get(PACKET_PEER(skb));
void wg_packet_send_queued_handshake_initiation(struct wg_peer *peer,
void wg_packet_send_handshake_response(struct wg_peer *peer);
void wg_packet_send_keepalive(struct wg_peer *peer);
void wg_packet_purge_staged_packets(struct wg_peer *peer);
void wg_packet_send_staged_packets(struct wg_peer *peer);
static void update_rx_stats(struct wg_peer *peer, size_t len)
static void keep_key_fresh(struct wg_peer *peer)
static void wg_packet_consume_data_done(struct wg_peer *peer,
struct wg_peer *routed_peer;
struct wg_peer *peer = container_of(napi, struct wg_peer, napi);
struct wg_peer *peer = NULL;
struct wg_peer *peer = NULL;
struct wg_peer **peers, *peer;
static __init struct wg_peer *init_peer(void)
struct wg_peer *peer = kzalloc_obj(*peer);
struct wg_peer *a = init_peer(), *b = init_peer(), *c = init_peer(),
static void keep_key_fresh(struct wg_peer *peer)
static void wg_packet_send_handshake_initiation(struct wg_peer *peer)
void wg_packet_send_keepalive(struct wg_peer *peer)
static void wg_packet_create_data_done(struct wg_peer *peer, struct sk_buff *first)
struct wg_peer *peer = container_of(work, struct wg_peer, transmit_packet_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)
struct wg_peer *peer = container_of(work, struct wg_peer,
void wg_packet_send_queued_handshake_initiation(struct wg_peer *peer,
void wg_packet_send_handshake_response(struct wg_peer *peer)
int wg_socket_send_skb_to_peer(struct wg_peer *peer, struct sk_buff *skb, u8 ds)
int wg_socket_send_buffer_to_peer(struct wg_peer *peer, void *buffer,
void wg_socket_set_peer_endpoint(struct wg_peer *peer,
void wg_socket_set_peer_endpoint_from_skb(struct wg_peer *peer,
void wg_socket_clear_peer_endpoint_src(struct wg_peer *peer)
int wg_socket_send_buffer_to_peer(struct wg_peer *peer, void *data,
int wg_socket_send_skb_to_peer(struct wg_peer *peer, struct sk_buff *skb,
void wg_socket_set_peer_endpoint(struct wg_peer *peer,
void wg_socket_set_peer_endpoint_from_skb(struct wg_peer *peer,
void wg_socket_clear_peer_endpoint_src(struct wg_peer *peer);
struct wg_peer *peer = timer_container_of(peer, timer,
struct wg_peer *peer = container_of(work, struct wg_peer,
struct wg_peer *peer = timer_container_of(peer, timer,
void wg_timers_data_sent(struct wg_peer *peer)
void wg_timers_data_received(struct wg_peer *peer)
void wg_timers_any_authenticated_packet_sent(struct wg_peer *peer)
void wg_timers_any_authenticated_packet_received(struct wg_peer *peer)
void wg_timers_handshake_initiated(struct wg_peer *peer)
void wg_timers_handshake_complete(struct wg_peer *peer)
void wg_timers_session_derived(struct wg_peer *peer)
void wg_timers_any_authenticated_packet_traversal(struct wg_peer *peer)
void wg_timers_init(struct wg_peer *peer)
void wg_timers_stop(struct wg_peer *peer)
static inline void mod_peer_timer(struct wg_peer *peer,
struct wg_peer *peer = timer_container_of(peer, timer,
struct wg_peer *peer = timer_container_of(peer, timer,
struct wg_peer *peer = timer_container_of(peer, timer,
struct wg_peer;
void wg_timers_init(struct wg_peer *peer);
void wg_timers_stop(struct wg_peer *peer);
void wg_timers_data_sent(struct wg_peer *peer);
void wg_timers_data_received(struct wg_peer *peer);
void wg_timers_any_authenticated_packet_sent(struct wg_peer *peer);
void wg_timers_any_authenticated_packet_received(struct wg_peer *peer);
void wg_timers_handshake_initiated(struct wg_peer *peer);
void wg_timers_handshake_complete(struct wg_peer *peer);
void wg_timers_session_derived(struct wg_peer *peer);
void wg_timers_any_authenticated_packet_traversal(struct wg_peer *peer);