Lines Matching refs:peer

8 #include "peer.h"
20 static void update_rx_stats(struct wg_peer *peer, size_t len)
22 dev_sw_netstats_rx_add(peer->device->dev, len);
23 peer->rx_bytes += len;
96 struct wg_peer *peer = NULL;
144 peer = wg_noise_handshake_consume_initiation(message, wg);
145 if (unlikely(!peer)) {
150 wg_socket_set_peer_endpoint_from_skb(peer, skb);
151 net_dbg_ratelimited("%s: Receiving handshake initiation from peer %llu (%pISpfsc)\n",
152 wg->dev->name, peer->internal_id,
153 &peer->endpoint.addr);
154 wg_packet_send_handshake_response(peer);
166 peer = wg_noise_handshake_consume_response(message, wg);
167 if (unlikely(!peer)) {
172 wg_socket_set_peer_endpoint_from_skb(peer, skb);
173 net_dbg_ratelimited("%s: Receiving handshake response from peer %llu (%pISpfsc)\n",
174 wg->dev->name, peer->internal_id,
175 &peer->endpoint.addr);
176 if (wg_noise_handshake_begin_session(&peer->handshake,
177 &peer->keypairs)) {
178 wg_timers_session_derived(peer);
179 wg_timers_handshake_complete(peer);
186 wg_packet_send_keepalive(peer);
192 if (unlikely(!peer)) {
198 update_rx_stats(peer, skb->len);
201 wg_timers_any_authenticated_packet_received(peer);
202 wg_timers_any_authenticated_packet_traversal(peer);
203 wg_peer_put(peer);
220 static void keep_key_fresh(struct wg_peer *peer)
225 if (peer->sent_lastminute_handshake)
229 keypair = rcu_dereference_bh(peer->keypairs.current_keypair);
237 peer->sent_lastminute_handshake = true;
238 wg_packet_send_queued_handshake_initiation(peer, false);
335 static void wg_packet_consume_data_done(struct wg_peer *peer,
339 struct net_device *dev = peer->device->dev;
343 wg_socket_set_peer_endpoint(peer, endpoint);
345 if (unlikely(wg_noise_received_with_keypair(&peer->keypairs,
347 wg_timers_handshake_complete(peer);
348 wg_packet_send_staged_packets(peer);
351 keep_key_fresh(peer);
353 wg_timers_any_authenticated_packet_received(peer);
354 wg_timers_any_authenticated_packet_traversal(peer);
358 update_rx_stats(peer, message_data_len(0));
359 net_dbg_ratelimited("%s: Receiving keepalive packet from peer %llu (%pISpfsc)\n",
360 dev->name, peer->internal_id,
361 &peer->endpoint.addr);
365 wg_timers_data_received(peer);
404 routed_peer = wg_allowedips_lookup_src(&peer->device->peer_allowedips,
408 if (unlikely(routed_peer != peer))
411 napi_gro_receive(&peer->napi, skb);
412 update_rx_stats(peer, message_data_len(len_before_trim));
416 net_dbg_skb_ratelimited("%s: Packet has unallowed src IP (%pISc) from peer %llu (%pISpfsc)\n",
417 dev->name, skb, peer->internal_id,
418 &peer->endpoint.addr);
423 net_dbg_ratelimited("%s: Packet is neither ipv4 nor ipv6 from peer %llu (%pISpfsc)\n",
424 dev->name, peer->internal_id, &peer->endpoint.addr);
429 net_dbg_ratelimited("%s: Packet has incorrect size from peer %llu (%pISpfsc)\n",
430 dev->name, peer->internal_id, &peer->endpoint.addr);
440 struct wg_peer *peer = container_of(napi, struct wg_peer, napi);
451 while ((skb = wg_prev_queue_peek(&peer->rx_queue)) != NULL &&
454 wg_prev_queue_drop_peeked(&peer->rx_queue);
464 peer->device->dev->name,
474 wg_packet_consume_data_done(peer, skb, &endpoint);
479 wg_peer_put(peer);
512 struct wg_peer *peer = NULL;
519 &peer);
523 if (unlikely(READ_ONCE(peer->is_dead)))
526 ret = wg_queue_enqueue_per_device_and_peer(&wg->decrypt_queue, &peer->rx_queue, skb,
538 wg_peer_put(peer);