Lines Matching refs:peer

8 #include "peer.h"
106 get_peer(struct wg_peer *peer, struct sk_buff *skb, struct dump_ctx *ctx)
116 down_read(&peer->handshake.lock);
118 peer->handshake.remote_static);
119 up_read(&peer->handshake.lock);
125 .tv_sec = peer->walltime_last_handshake.tv_sec,
126 .tv_nsec = peer->walltime_last_handshake.tv_nsec
129 down_read(&peer->handshake.lock);
132 peer->handshake.preshared_key);
133 up_read(&peer->handshake.lock);
140 peer->persistent_keepalive_interval) ||
141 nla_put_u64_64bit(skb, WGPEER_A_TX_BYTES, peer->tx_bytes,
143 nla_put_u64_64bit(skb, WGPEER_A_RX_BYTES, peer->rx_bytes,
148 read_lock_bh(&peer->endpoint_lock);
149 if (peer->endpoint.addr.sa_family == AF_INET)
151 sizeof(peer->endpoint.addr4),
152 &peer->endpoint.addr4);
153 else if (peer->endpoint.addr.sa_family == AF_INET6)
155 sizeof(peer->endpoint.addr6),
156 &peer->endpoint.addr6);
157 read_unlock_bh(&peer->endpoint_lock);
161 list_first_entry_or_null(&peer->allowedips_list,
175 list_for_each_entry_from(allowedips_node, &peer->allowedips_list,
212 struct wg_peer *peer, *next_peer_cursor;
269 peer = list_prepare_entry(ctx->next_peer, &wg->peer_list, peer_list);
270 list_for_each_entry_continue(peer, &wg->peer_list, peer_list) {
271 if (get_peer(peer, skb, ctx)) {
275 next_peer_cursor = peer;
316 struct wg_peer *peer;
320 list_for_each_entry(peer, &wg->peer_list, peer_list)
321 wg_socket_clear_peer_endpoint_src(peer);
329 static int set_allowedip(struct wg_peer *peer, struct nlattr **attrs)
344 &peer->device->peer_allowedips,
345 nla_data(attrs[WGALLOWEDIP_A_IPADDR]), cidr, peer,
346 &peer->device->device_update_lock);
350 &peer->device->peer_allowedips,
351 nla_data(attrs[WGALLOWEDIP_A_IPADDR]), cidr, peer,
352 &peer->device->device_update_lock);
360 struct wg_peer *peer = NULL;
386 peer = wg_pubkey_hashtable_lookup(wg->peer_hashtable,
389 if (!peer) { /* Peer doesn't exist yet. Add a new one. */
393 /* The peer is new, so there aren't allowed IPs to remove. */
412 peer = wg_peer_create(wg, public_key, preshared_key);
413 if (IS_ERR(peer)) {
414 ret = PTR_ERR(peer);
415 peer = NULL;
421 wg_peer_get(peer);
425 wg_peer_remove(peer);
430 down_write(&peer->handshake.lock);
431 memcpy(&peer->handshake.preshared_key, preshared_key,
433 up_write(&peer->handshake.lock);
443 wg_socket_set_peer_endpoint(peer, &endpoint);
446 wg_socket_set_peer_endpoint(peer, &endpoint);
451 wg_allowedips_remove_by_peer(&wg->peer_allowedips, peer,
463 ret = set_allowedip(peer, allowedip);
473 !peer->persistent_keepalive_interval &&
477 peer->persistent_keepalive_interval = persistent_keepalive_interval;
479 wg_packet_send_keepalive(peer);
483 wg_packet_send_staged_packets(peer);
486 wg_peer_put(peer);
526 struct wg_peer *peer;
529 list_for_each_entry(peer, &wg->peer_list, peer_list)
530 wg_socket_clear_peer_endpoint_src(peer);
548 struct wg_peer *peer, *temp;
559 peer = wg_pubkey_hashtable_lookup(wg->peer_hashtable,
561 if (peer) {
562 wg_peer_put(peer);
563 wg_peer_remove(peer);
573 list_for_each_entry_safe(peer, temp, &wg->peer_list, peer_list) {
574 wg_noise_precompute_static_static(peer);
575 wg_noise_expire_current_peer_keypairs(peer);
577 wg_packet_send_staged_packets(peer);
584 struct nlattr *attr, *peer[WGPEER_A_MAX + 1];
588 ret = nla_parse_nested(peer, WGPEER_A_MAX, attr,
592 ret = set_peer(wg, peer);