NetBSD Problem Report #58463

From christos@astron.com  Wed Jul 24 21:00:28 2024
Return-Path: <christos@astron.com>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits)
	 client-signature RSA-PSS (2048 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id B26831A923C
	for <gnats-bugs@gnats.NetBSD.org>; Wed, 24 Jul 2024 21:00:28 +0000 (UTC)
Message-Id: <20240724210022.B8C766C28D@quasar.astron.com>
Date: Wed, 24 Jul 2024 21:00:22 +0000 (UTC)
From: christos@astron.com
Reply-To: christos@astron.com
To: gnats-bugs@NetBSD.org
Subject: if_wg does not work when idle.
X-Send-Pr-Version: 3.95

>Number:         58463
>Category:       kern
>Synopsis:       if_wg tunnel stops working after a while.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jul 24 21:05:00 +0000 2024
>Last-Modified:  Thu Aug 01 18:18:00 +0000 2024
>Originator:     Christos Zoulas
>Release:        NetBSD 10.99.11
>Organization:
	Tunnel Boring, Inc
>Environment:
System: NetBSD quasar.astron.com 10.99.11 NetBSD 10.99.11 (QUASAR) #9: Wed Jul 24 16:49:40 EDT 2024 christos@quasar.astron.com:/usr/src/sys/arch/amd64/compile/QUASAR amd64
Architecture: x86_64
Machine: amd64
>Description:
Tunnel stops working when idle.
>How-To-Repeat:
Bring up a tunnel as described on the man page. After a short while it stops
working when there is no traffic and keeps renegotiating. When I start pinging
again, it does not work for a while, but then it starts working. It keeps
working while pinging is active and then enters a catatonic state.


XXX: LOOPING BAD IDLE

[  2787.226049] wg_update_endpoint_if_necessary: old=inet: 172.58.231.100:58696, new=inet: 172.58.231.100:29931
[  2787.226049] wg_change_endpoint:2374: Changing endpoint
[  2787.227049] wg_schedule_peer_task: tasks=0, task=8
[  2787.227049] wg_fill_msg_resp: sender=2d5668da
[  2787.227049] wg_fill_msg_resp: receiver=f0db4e3d
[  2787.227049] wg_send_handshake_msg_resp:2098: resp msg sent
[  2787.227049] wg_task_endpoint_changed:3095: WGP_TASK_ENDPOINT_CHANGED
[  2787.287049] wg_overudp_cb:3256: enter
[  2787.287049] wg_overudp_cb: type=4
[  2787.287049] wg_handle_msg_data:2561: data
[  2787.287049] wg_handle_msg_data: mlen=32, encrypted_len=16
[  2787.287049] wg_handle_msg_data: outsize=0
[  2907.560784] wg_overudp_cb:3256: enter
[  2907.560784] wg_overudp_cb: type=1
[  2907.560784] wg_handle_msg_init:1447: init msg received
[  2907.560784] wg_handle_msg_init:1601: Session already initializing, destroying old states
[  2907.560784] wg_update_endpoint_if_necessary: old=inet: 172.58.231.100:29931, new=inet: 172.58.231.82:18490
[  2907.561785] wg_change_endpoint:2374: Changing endpoint
[  2907.561785] wg_schedule_peer_task: tasks=0, task=8
[  2907.561785] wg_fill_msg_resp: sender=2d5668da
[  2907.561785] wg_fill_msg_resp: receiver=6348aeeb
[  2907.561785] wg_send_handshake_msg_resp:2098: resp msg sent
[  2907.561785] wg_task_endpoint_changed:3095: WGP_TASK_ENDPOINT_CHANGED
[  2907.623785] wg_overudp_cb:3256: enter
[  2907.623785] wg_overudp_cb: type=4
[  2907.623785] wg_handle_msg_data:2561: data
[  2907.623785] wg_handle_msg_data: mlen=32, encrypted_len=16
[  2907.623785] wg_handle_msg_data: outsize=0
[  2941.873985] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  2941.873985] wg_pick_peer_by_sa:3827: success
[  2941.873985] wg_session_hit_limits: The session hits REJECT_AFTER_TIME
[  2941.874985] wgintr:3364: stable session hit limits
[  2941.874985] wg_schedule_peer_task: tasks=0, task=1
[  2941.874985] wg_task_send_init_message:2972: WGP_TASK_SEND_INIT_MESSAGE
[  2941.874985] wg_send_handshake_msg_init:1718: Session already initializing, destroying old states
[  2941.874985] wg_fill_msg_init: wg_fill_msg_init: sender=2d5668da
[  2941.874985] wg_send_handshake_msg_init:1743: init msg sent
[  2942.281990] wg_overudp_cb:3256: enter
[  2942.281990] wg_overudp_cb: type=2
[  2942.281990] wg_handle_msg_resp:1900: resp msg received
[  2942.281990] wg_handle_msg_resp: receiver=59f134bb
[  2942.281990] wg_handle_msg_resp:2021: WGS_STATE_ESTABLISHED
[  2942.281990] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  2942.282988] wg_send_keepalive_msg:2329: 
[  2942.282988] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  2942.282988] wg_fill_msg_data: counter=0
[  2943.282997] wg_session_dtor_timer:2477: enter
[  2943.282997] wg_schedule_peer_task: tasks=0, task=32
[  2943.282997] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION

XXX: PING STARTS AND DOES NOT WORK

[  2985.648250] wg_overudp_cb:3256: enter
[  2985.648250] wg_overudp_cb: type=4
[  2985.648250] wg_handle_msg_data:2561: data
[  2985.648250] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2985.648250] wg_handle_msg_data: outsize=96
[  2986.391256] wg_overudp_cb:3256: enter
[  2986.391256] wg_overudp_cb: type=4
[  2986.391256] wg_handle_msg_data:2561: data
[  2986.391256] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2986.391256] wg_handle_msg_data: outsize=96
[  2987.400263] wg_overudp_cb:3256: enter
[  2987.400263] wg_overudp_cb: type=4
[  2987.400263] wg_handle_msg_data:2561: data
[  2987.400263] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2987.400263] wg_handle_msg_data: outsize=96
[  2988.402272] wg_overudp_cb:3256: enter
[  2988.402272] wg_overudp_cb: type=4
[  2988.402272] wg_handle_msg_data:2561: data
[  2988.402272] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2988.402272] wg_handle_msg_data: outsize=96
[  2988.402272] wg_validate_inner_packet: af=2
[  2988.402272] wg_validate_inner_packet: packet_len=18530
[  2989.378277] wg_overudp_cb:3256: enter
[  2989.378277] wg_overudp_cb: type=4
[  2989.378277] wg_handle_msg_data:2561: data
[  2989.378277] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2989.378277] wg_handle_msg_data: outsize=96
[  2990.400285] wg_overudp_cb:3256: enter
[  2990.400285] wg_overudp_cb: type=4
[  2990.400285] wg_handle_msg_data:2561: data
[  2990.400285] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2990.400285] wg_handle_msg_data: outsize=96
[  2991.385286] wg_overudp_cb:3256: enter
[  2991.385286] wg_overudp_cb: type=4
[  2991.385286] wg_handle_msg_data:2561: data
[  2991.385286] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2991.385286] wg_handle_msg_data: outsize=96
[  2992.403288] wg_overudp_cb:3256: enter
[  2992.403288] wg_overudp_cb: type=4
[  2992.403288] wg_handle_msg_data:2561: data
[  2992.403288] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2992.403288] wg_handle_msg_data: outsize=96
[  2993.375295] wg_overudp_cb:3256: enter
[  2993.375295] wg_overudp_cb: type=4
[  2993.375295] wg_handle_msg_data:2561: data
[  2993.375295] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2993.375295] wg_handle_msg_data: outsize=96
[  2994.378301] wg_overudp_cb:3256: enter
[  2994.378301] wg_overudp_cb: type=4
[  2994.378301] wg_handle_msg_data:2561: data
[  2994.378301] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2994.378301] wg_handle_msg_data: outsize=96
[  2995.378309] wg_overudp_cb:3256: enter
[  2995.378309] wg_overudp_cb: type=4
[  2995.378309] wg_handle_msg_data:2561: data
[  2995.378309] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2995.378309] wg_handle_msg_data: outsize=96
[  2996.401316] wg_overudp_cb:3256: enter
[  2996.401316] wg_overudp_cb: type=4
[  2996.401316] wg_handle_msg_data:2561: data
[  2996.401316] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2996.401316] wg_handle_msg_data: outsize=96
[  2997.369322] wg_overudp_cb:3256: enter
[  2997.369322] wg_overudp_cb: type=4
[  2997.369322] wg_handle_msg_data:2561: data
[  2997.369322] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2997.369322] wg_handle_msg_data: outsize=96
[  2998.398329] wg_overudp_cb:3256: enter
[  2998.398329] wg_overudp_cb: type=4
[  2998.398329] wg_handle_msg_data:2561: data
[  2998.398329] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2998.398329] wg_handle_msg_data: outsize=96
[  2998.398329] wg_validate_inner_packet: af=2
[  2998.398329] wg_validate_inner_packet: packet_len=39798
[  2999.400338] wg_overudp_cb:3256: enter
[  2999.400338] wg_overudp_cb: type=4
[  2999.400338] wg_handle_msg_data:2561: data
[  2999.400338] wg_handle_msg_data: mlen=128, encrypted_len=112
[  2999.400338] wg_handle_msg_data: outsize=96
[  2999.400338] wg_validate_inner_packet: af=24
[  2999.400338] wg_validate_inner_packet: packet_len=10161
[  3000.401343] wg_overudp_cb:3256: enter
[  3000.401343] wg_overudp_cb: type=4
[  3000.401343] wg_handle_msg_data:2561: data
[  3000.401343] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3000.401343] wg_handle_msg_data: outsize=96
[  3001.378344] wg_overudp_cb:3256: enter
[  3001.378344] wg_overudp_cb: type=4
[  3001.378344] wg_handle_msg_data:2561: data
[  3001.378344] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3001.378344] wg_handle_msg_data: outsize=96
[  3002.400350] wg_overudp_cb:3256: enter
[  3002.400350] wg_overudp_cb: type=4
[  3002.400350] wg_handle_msg_data:2561: data
[  3002.400350] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3002.400350] wg_handle_msg_data: outsize=96
[  3002.400350] wg_validate_inner_packet: af=2
[  3002.400350] wg_validate_inner_packet: packet_len=54339
[  3003.378354] wg_overudp_cb:3256: enter
[  3003.378354] wg_overudp_cb: type=4
[  3003.378354] wg_handle_msg_data:2561: data
[  3003.378354] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3003.378354] wg_handle_msg_data: outsize=96
[  3004.378361] wg_overudp_cb:3256: enter
[  3004.378361] wg_overudp_cb: type=4
[  3004.378361] wg_handle_msg_data:2561: data
[  3004.378361] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3004.378361] wg_handle_msg_data: outsize=96
[  3005.375368] wg_overudp_cb:3256: enter
[  3005.375368] wg_overudp_cb: type=4
[  3005.375368] wg_handle_msg_data:2561: data
[  3005.375368] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3005.375368] wg_handle_msg_data: outsize=96
[  3006.398375] wg_overudp_cb:3256: enter
[  3006.398375] wg_overudp_cb: type=4
[  3006.398375] wg_handle_msg_data:2561: data
[  3006.398375] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3006.398375] wg_handle_msg_data: outsize=96
[  3007.378382] wg_overudp_cb:3256: enter
[  3007.378382] wg_overudp_cb: type=4
[  3007.378382] wg_handle_msg_data:2561: data
[  3007.378382] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3007.378382] wg_handle_msg_data: outsize=96
[  3008.386389] wg_overudp_cb:3256: enter
[  3008.386389] wg_overudp_cb: type=4
[  3008.386389] wg_handle_msg_data:2561: data
[  3008.386389] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3008.386389] wg_handle_msg_data: outsize=96
[  3009.373396] wg_overudp_cb:3256: enter
[  3009.373396] wg_overudp_cb: type=4
[  3009.374398] wg_handle_msg_data:2561: data
[  3009.374398] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3009.374398] wg_handle_msg_data: outsize=96
[  3010.397403] wg_overudp_cb:3256: enter
[  3010.398511] wg_overudp_cb: type=4
[  3010.398511] wg_handle_msg_data:2561: data
[  3010.398511] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3010.398511] wg_handle_msg_data: outsize=96
[  3011.400406] wg_overudp_cb:3256: enter
[  3011.400406] wg_overudp_cb: type=4
[  3011.400406] wg_handle_msg_data:2561: data
[  3011.400406] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3011.400406] wg_handle_msg_data: outsize=96
[  3012.401409] wg_overudp_cb:3256: enter
[  3012.401409] wg_overudp_cb: type=4
[  3012.401409] wg_handle_msg_data:2561: data
[  3012.401409] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3012.401409] wg_handle_msg_data: outsize=96
[  3013.378414] wg_overudp_cb:3256: enter
[  3013.378414] wg_overudp_cb: type=4
[  3013.378414] wg_handle_msg_data:2561: data
[  3013.378414] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3013.378414] wg_handle_msg_data: outsize=96
[  3014.400421] wg_overudp_cb:3256: enter
[  3014.400421] wg_overudp_cb: type=4
[  3014.400421] wg_handle_msg_data:2561: data
[  3014.400421] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3014.400421] wg_handle_msg_data: outsize=96
[  3015.378428] wg_overudp_cb:3256: enter
[  3015.378428] wg_overudp_cb: type=4
[  3015.378428] wg_handle_msg_data:2561: data
[  3015.378428] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3015.378428] wg_handle_msg_data: outsize=96
[  3016.378435] wg_overudp_cb:3256: enter
[  3016.378435] wg_overudp_cb: type=4
[  3016.378435] wg_handle_msg_data:2561: data
[  3016.378435] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3016.378435] wg_handle_msg_data: outsize=96
[  3016.378435] wg_validate_inner_packet: af=24
[  3016.378435] wg_validate_inner_packet: packet_len=20536
[  3017.380443] wg_overudp_cb:3256: enter
[  3017.380443] wg_overudp_cb: type=4
[  3017.380443] wg_handle_msg_data:2561: data
[  3017.380443] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3017.380443] wg_handle_msg_data: outsize=96
[  3017.380443] wg_validate_inner_packet: af=2
[  3017.381443] wg_validate_inner_packet: packet_len=41950
[  3018.378449] wg_overudp_cb:3256: enter
[  3018.378449] wg_overudp_cb: type=4
[  3018.378449] wg_handle_msg_data:2561: data
[  3018.378449] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3018.378449] wg_handle_msg_data: outsize=96
[  3019.378456] wg_overudp_cb:3256: enter
[  3019.378456] wg_overudp_cb: type=4
[  3019.378456] wg_handle_msg_data:2561: data
[  3019.378456] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3019.378456] wg_handle_msg_data: outsize=96
[  3020.401457] wg_overudp_cb:3256: enter
[  3020.401457] wg_overudp_cb: type=4
[  3020.401457] wg_handle_msg_data:2561: data
[  3020.401457] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3020.401457] wg_handle_msg_data: outsize=96
[  3020.401457] wg_validate_inner_packet: af=24
[  3020.401457] wg_validate_inner_packet: packet_len=64086
[  3021.376460] wg_overudp_cb:3256: enter
[  3021.376460] wg_overudp_cb: type=4
[  3021.376460] wg_handle_msg_data:2561: data
[  3021.376460] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3021.376460] wg_handle_msg_data: outsize=96
[  3022.378467] wg_overudp_cb:3256: enter
[  3022.378467] wg_overudp_cb: type=4
[  3022.378467] wg_handle_msg_data:2561: data
[  3022.378467] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3022.378467] wg_handle_msg_data: outsize=96
[  3023.378474] wg_overudp_cb:3256: enter
[  3023.378474] wg_overudp_cb: type=4
[  3023.378474] wg_handle_msg_data:2561: data
[  3023.378474] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3023.378474] wg_handle_msg_data: outsize=96
[  3024.401480] wg_overudp_cb:3256: enter
[  3024.401480] wg_overudp_cb: type=4
[  3024.401480] wg_handle_msg_data:2561: data
[  3024.401480] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3024.401480] wg_handle_msg_data: outsize=96
[  3025.378487] wg_overudp_cb:3256: enter
[  3025.378487] wg_overudp_cb: type=4
[  3025.378487] wg_handle_msg_data:2561: data
[  3025.378487] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3025.378487] wg_handle_msg_data: outsize=96
[  3026.406495] wg_overudp_cb:3256: enter
[  3026.406495] wg_overudp_cb: type=4
[  3026.406495] wg_handle_msg_data:2561: data
[  3026.406495] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3026.406495] wg_handle_msg_data: outsize=96
[  3027.378501] wg_overudp_cb:3256: enter
[  3027.378501] wg_overudp_cb: type=4
[  3027.378501] wg_handle_msg_data:2561: data
[  3027.378501] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3027.378501] wg_handle_msg_data: outsize=96
[  3027.618505] wg_overudp_cb:3256: enter
[  3027.618505] wg_overudp_cb: type=1
[  3027.618505] wg_handle_msg_init:1447: init msg received

XXX: PING STARTS WORKING:

[  3027.618505] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3027.619503] wg_fill_msg_resp: sender=ce98bf9e
[  3027.619503] wg_fill_msg_resp: receiver=59f134bb
[  3027.619503] wg_send_handshake_msg_resp:2098: resp msg sent
[  3027.677505] wg_overudp_cb:3256: enter
[  3027.678523] wg_overudp_cb: type=4
[  3027.678523] wg_handle_msg_data:2561: data
[  3027.678523] wg_handle_msg_data: mlen=32, encrypted_len=16
[  3027.678523] wg_handle_msg_data: outsize=0
[  3028.378508] wg_overudp_cb:3256: enter
[  3028.378508] wg_overudp_cb: type=4
[  3028.378508] wg_handle_msg_data:2561: data
[  3028.378508] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3028.378508] wg_handle_msg_data: outsize=96
[  3028.378508] wg_validate_inner_packet: af=2
[  3028.378508] wg_validate_inner_packet: packet_len=84
[  3028.378508] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3028.378508] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3028.378508] wg_pick_peer_by_sa:3827: success
[  3028.378508] wg_input:4105: 
[  3028.378508] wg_schedule_peer_task: tasks=0, task=4
[  3028.378508] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3028.378508] wg_pick_peer_by_sa:3827: success
[  3028.378508] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3028.378508] wg_fill_msg_data: counter=1
[  3028.378508] wg_task_establish_session:3051: WGS_STATE_ESTABLISHED
[  3029.378515] wg_overudp_cb:3256: enter
[  3029.378515] wg_overudp_cb: type=4
[  3029.378515] wg_handle_msg_data:2561: data
[  3029.378515] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3029.378515] wg_handle_msg_data: outsize=96
[  3029.378515] wg_validate_inner_packet: af=2
[  3029.378515] wg_validate_inner_packet: packet_len=84
[  3029.378515] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3029.378515] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3029.378515] wg_pick_peer_by_sa:3827: success
[  3029.378515] wg_input:4105: 
[  3029.378515] wg_handle_msg_data: time_uptime=3029 wgs_time_last_data_sent=0
[  3029.378515] wg_handle_msg_data:2756: Schedule sending keepalive message
[  3029.378515] wg_schedule_peer_task: tasks=0, task=16
[  3029.378515] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3029.378515] wg_pick_peer_by_sa:3827: success
[  3029.378515] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3029.379519] wg_fill_msg_data: counter=0
[  3029.379519] wg_session_dtor_timer:2477: enter
[  3029.379519] wg_schedule_peer_task: tasks=16, task=32
[  3029.379519] wg_task_send_keepalive_message:3116: WGP_TASK_SEND_KEEPALIVE_MESSAGE
[  3029.379519] wg_send_keepalive_msg:2329: 
[  3029.379519] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  3029.379519] wg_fill_msg_data: counter=1
[  3029.379519] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION
[  3030.378516] wg_overudp_cb:3256: enter
[  3030.378516] wg_overudp_cb: type=4
[  3030.378516] wg_handle_msg_data:2561: data
[  3030.378516] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3030.378516] wg_handle_msg_data: outsize=96
[  3030.378516] wg_validate_inner_packet: af=2
[  3030.378516] wg_validate_inner_packet: packet_len=84
[  3030.378516] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3030.378516] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3030.378516] wg_pick_peer_by_sa:3827: success
[  3030.378516] wg_input:4105: 
[  3030.378516] wg_handle_msg_data: time_uptime=3030 wgs_time_last_data_sent=3029
[  3030.378516] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3030.378516] wg_pick_peer_by_sa:3827: success
[  3030.378516] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3030.378516] wg_fill_msg_data: counter=2
[  3031.377519] wg_overudp_cb:3256: enter
[  3031.378548] wg_overudp_cb: type=4
[  3031.378548] wg_handle_msg_data:2561: data
[  3031.378548] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3031.378548] wg_handle_msg_data: outsize=96
[  3031.378548] wg_validate_inner_packet: af=2
[  3031.378548] wg_validate_inner_packet: packet_len=84
[  3031.378548] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3031.378548] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3031.378548] wg_pick_peer_by_sa:3827: success
[  3031.378548] wg_input:4105: 
[  3031.378548] wg_handle_msg_data: time_uptime=3031 wgs_time_last_data_sent=3030
[  3031.378548] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3031.378548] wg_pick_peer_by_sa:3827: success
[  3031.378548] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3031.378548] wg_fill_msg_data: counter=3
[  3032.383526] wg_overudp_cb:3256: enter
[  3032.384550] wg_overudp_cb: type=4
[  3032.384550] wg_handle_msg_data:2561: data
[  3032.384550] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3032.384550] wg_handle_msg_data: outsize=96
[  3032.384550] wg_validate_inner_packet: af=2
[  3032.384550] wg_validate_inner_packet: packet_len=84
[  3032.384550] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3032.384550] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3032.384550] wg_pick_peer_by_sa:3827: success
[  3032.384550] wg_input:4105: 
[  3032.384550] wg_handle_msg_data: time_uptime=3032 wgs_time_last_data_sent=3031
[  3032.384550] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3032.384550] wg_pick_peer_by_sa:3827: success
[  3032.384550] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3032.384550] wg_fill_msg_data: counter=4
[  3033.375535] wg_overudp_cb:3256: enter
[  3033.375535] wg_overudp_cb: type=4
[  3033.375535] wg_handle_msg_data:2561: data
[  3033.375535] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3033.375535] wg_handle_msg_data: outsize=96
[  3033.375535] wg_validate_inner_packet: af=2
[  3033.375535] wg_validate_inner_packet: packet_len=84
[  3033.375535] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3033.375535] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3033.375535] wg_pick_peer_by_sa:3827: success
[  3033.375535] wg_input:4105: 
[  3033.375535] wg_handle_msg_data: time_uptime=3033 wgs_time_last_data_sent=3032
[  3033.375535] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3033.375535] wg_pick_peer_by_sa:3827: success
[  3033.375535] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3033.376593] wg_fill_msg_data: counter=5
[  3034.378540] wg_overudp_cb:3256: enter
[  3034.378540] wg_overudp_cb: type=4
[  3034.378540] wg_handle_msg_data:2561: data
[  3034.378540] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3034.378540] wg_handle_msg_data: outsize=96
[  3034.378540] wg_validate_inner_packet: af=2
[  3034.378540] wg_validate_inner_packet: packet_len=84
[  3034.378540] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3034.379632] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3034.379632] wg_pick_peer_by_sa:3827: success
[  3034.379632] wg_input:4105: 
[  3034.379632] wg_handle_msg_data: time_uptime=3034 wgs_time_last_data_sent=3033
[  3034.379632] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3034.379632] wg_pick_peer_by_sa:3827: success
[  3034.379632] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3034.379632] wg_fill_msg_data: counter=6
[  3035.387547] wg_overudp_cb:3256: enter
[  3035.387547] wg_overudp_cb: type=4
[  3035.387547] wg_handle_msg_data:2561: data
[  3035.387547] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3035.388562] wg_handle_msg_data: outsize=96
[  3035.388562] wg_validate_inner_packet: af=2
[  3035.388562] wg_validate_inner_packet: packet_len=84
[  3035.388562] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3035.388562] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3035.388562] wg_pick_peer_by_sa:3827: success
[  3035.388562] wg_input:4105: 
[  3035.388562] wg_handle_msg_data: time_uptime=3035 wgs_time_last_data_sent=3034
[  3035.388562] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3035.388562] wg_pick_peer_by_sa:3827: success
[  3035.388562] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3035.388562] wg_fill_msg_data: counter=7
[  3036.387554] wg_overudp_cb:3256: enter
[  3036.387554] wg_overudp_cb: type=4
[  3036.387554] wg_handle_msg_data:2561: data
[  3036.387554] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3036.387554] wg_handle_msg_data: outsize=96
[  3036.387554] wg_validate_inner_packet: af=2
[  3036.387554] wg_validate_inner_packet: packet_len=84
[  3036.387554] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3036.387554] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3036.387554] wg_pick_peer_by_sa:3827: success
[  3036.388554] wg_input:4105: 
[  3036.388554] wg_handle_msg_data: time_uptime=3036 wgs_time_last_data_sent=3035
[  3036.388554] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3036.388554] wg_pick_peer_by_sa:3827: success
[  3036.388554] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3036.388554] wg_fill_msg_data: counter=8
[  3037.378561] wg_overudp_cb:3256: enter
[  3037.378561] wg_overudp_cb: type=4
[  3037.378561] wg_handle_msg_data:2561: data
[  3037.378561] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3037.378561] wg_handle_msg_data: outsize=96
[  3037.378561] wg_validate_inner_packet: af=2
[  3037.378561] wg_validate_inner_packet: packet_len=84
[  3037.378561] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3037.379592] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3037.379592] wg_pick_peer_by_sa:3827: success
[  3037.379592] wg_input:4105: 
[  3037.379592] wg_handle_msg_data: time_uptime=3037 wgs_time_last_data_sent=3036
[  3037.379592] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3037.379592] wg_pick_peer_by_sa:3827: success
[  3037.379592] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3037.379592] wg_fill_msg_data: counter=9
[  3038.378567] wg_overudp_cb:3256: enter
[  3038.378567] wg_overudp_cb: type=4
[  3038.378567] wg_handle_msg_data:2561: data
[  3038.378567] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3038.378567] wg_handle_msg_data: outsize=96
[  3038.378567] wg_validate_inner_packet: af=2
[  3038.378567] wg_validate_inner_packet: packet_len=84
[  3038.378567] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3038.378567] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3038.378567] wg_pick_peer_by_sa:3827: success
[  3038.378567] wg_input:4105: 
[  3038.378567] wg_handle_msg_data: time_uptime=3038 wgs_time_last_data_sent=3037
[  3038.378567] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3038.378567] wg_pick_peer_by_sa:3827: success
[  3038.378567] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3038.378567] wg_fill_msg_data: counter=10
[  3039.379576] wg_overudp_cb:3256: enter
[  3039.380580] wg_overudp_cb: type=4
[  3039.380580] wg_handle_msg_data:2561: data
[  3039.380580] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3039.380580] wg_handle_msg_data: outsize=96
[  3039.380580] wg_validate_inner_packet: af=2
[  3039.380580] wg_validate_inner_packet: packet_len=84
[  3039.380580] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3039.380580] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3039.380580] wg_pick_peer_by_sa:3827: success
[  3039.380580] wg_input:4105: 
[  3039.380580] wg_handle_msg_data: time_uptime=3039 wgs_time_last_data_sent=3038
[  3039.380580] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3039.380580] wg_pick_peer_by_sa:3827: success
[  3039.380580] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3039.380580] wg_fill_msg_data: counter=11
[  3040.378581] wg_overudp_cb:3256: enter
[  3040.378581] wg_overudp_cb: type=4
[  3040.378581] wg_handle_msg_data:2561: data
[  3040.378581] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3040.378581] wg_handle_msg_data: outsize=96
[  3040.378581] wg_validate_inner_packet: af=2
[  3040.378581] wg_validate_inner_packet: packet_len=84
[  3040.378581] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3040.378581] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3040.378581] wg_pick_peer_by_sa:3827: success
[  3040.378581] wg_input:4105: 
[  3040.378581] wg_handle_msg_data: time_uptime=3040 wgs_time_last_data_sent=3039
[  3040.378581] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3040.378581] wg_pick_peer_by_sa:3827: success
[  3040.378581] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3040.378581] wg_fill_msg_data: counter=12
[  3041.377583] wg_overudp_cb:3256: enter
[  3041.378585] wg_overudp_cb: type=4
[  3041.378585] wg_handle_msg_data:2561: data
[  3041.378585] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3041.378585] wg_handle_msg_data: outsize=96
[  3041.378585] wg_validate_inner_packet: af=2
[  3041.378585] wg_validate_inner_packet: packet_len=84
[  3041.378585] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3041.378585] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3041.378585] wg_pick_peer_by_sa:3827: success
[  3041.378585] wg_input:4105: 
[  3041.378585] wg_handle_msg_data: time_uptime=3041 wgs_time_last_data_sent=3040
[  3041.378585] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3041.378585] wg_pick_peer_by_sa:3827: success
[  3041.378585] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3041.378585] wg_fill_msg_data: counter=13
[  3042.378586] wg_overudp_cb:3256: enter
[  3042.378586] wg_overudp_cb: type=4
[  3042.378586] wg_handle_msg_data:2561: data
[  3042.378586] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3042.378586] wg_handle_msg_data: outsize=96
[  3042.378586] wg_validate_inner_packet: af=2
[  3042.378586] wg_validate_inner_packet: packet_len=84
[  3042.378586] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3042.378586] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3042.378586] wg_pick_peer_by_sa:3827: success
[  3042.378586] wg_input:4105: 
[  3042.378586] wg_handle_msg_data: time_uptime=3042 wgs_time_last_data_sent=3041
[  3042.378586] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3042.378586] wg_pick_peer_by_sa:3827: success
[  3042.378586] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3042.378586] wg_fill_msg_data: counter=14
[  3043.378593] wg_overudp_cb:3256: enter
[  3043.378593] wg_overudp_cb: type=4
[  3043.378593] wg_handle_msg_data:2561: data
[  3043.378593] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3043.378593] wg_handle_msg_data: outsize=96
[  3043.378593] wg_validate_inner_packet: af=2
[  3043.378593] wg_validate_inner_packet: packet_len=84
[  3043.378593] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3043.378593] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3043.378593] wg_pick_peer_by_sa:3827: success
[  3043.378593] wg_input:4105: 
[  3043.378593] wg_handle_msg_data: time_uptime=3043 wgs_time_last_data_sent=3042
[  3043.378593] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3043.378593] wg_pick_peer_by_sa:3827: success
[  3043.378593] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3043.379641] wg_fill_msg_data: counter=15
[  3044.377602] wg_overudp_cb:3256: enter
[  3044.377602] wg_overudp_cb: type=4
[  3044.378630] wg_handle_msg_data:2561: data
[  3044.378630] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3044.378630] wg_handle_msg_data: outsize=96
[  3044.378630] wg_validate_inner_packet: af=2
[  3044.378630] wg_validate_inner_packet: packet_len=84
[  3044.378630] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3044.378630] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3044.378630] wg_pick_peer_by_sa:3827: success
[  3044.378630] wg_input:4105: 
[  3044.378630] wg_handle_msg_data: time_uptime=3044 wgs_time_last_data_sent=3043
[  3044.378630] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3044.378630] wg_pick_peer_by_sa:3827: success
[  3044.378630] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3044.378630] wg_fill_msg_data: counter=16
[  3045.369606] wg_overudp_cb:3256: enter
[  3045.369606] wg_overudp_cb: type=4
[  3045.369606] wg_handle_msg_data:2561: data
[  3045.369606] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3045.369606] wg_handle_msg_data: outsize=96
[  3045.369606] wg_validate_inner_packet: af=2
[  3045.369606] wg_validate_inner_packet: packet_len=84
[  3045.369606] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3045.369606] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3045.369606] wg_pick_peer_by_sa:3827: success
[  3045.369606] wg_input:4105: 
[  3045.369606] wg_handle_msg_data: time_uptime=3045 wgs_time_last_data_sent=3044
[  3045.369606] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3045.369606] wg_pick_peer_by_sa:3827: success
[  3045.369606] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3045.369606] wg_fill_msg_data: counter=17
[  3046.378613] wg_overudp_cb:3256: enter
[  3046.378613] wg_overudp_cb: type=4
[  3046.378613] wg_handle_msg_data:2561: data
[  3046.378613] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3046.378613] wg_handle_msg_data: outsize=96
[  3046.378613] wg_validate_inner_packet: af=2
[  3046.378613] wg_validate_inner_packet: packet_len=84
[  3046.378613] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3046.378613] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3046.378613] wg_pick_peer_by_sa:3827: success
[  3046.379614] wg_input:4105: 
[  3046.379614] wg_handle_msg_data: time_uptime=3046 wgs_time_last_data_sent=3045
[  3046.379614] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3046.379614] wg_pick_peer_by_sa:3827: success
[  3046.379614] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3046.379614] wg_fill_msg_data: counter=18
[  3047.377622] wg_overudp_cb:3256: enter
[  3047.377622] wg_overudp_cb: type=4
[  3047.378622] wg_handle_msg_data:2561: data
[  3047.378622] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3047.378622] wg_handle_msg_data: outsize=96
[  3047.378622] wg_validate_inner_packet: af=2
[  3047.378622] wg_validate_inner_packet: packet_len=84
[  3047.378622] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3047.378622] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3047.378622] wg_pick_peer_by_sa:3827: success
[  3047.378622] wg_input:4105: 
[  3047.378622] wg_handle_msg_data: time_uptime=3047 wgs_time_last_data_sent=3046
[  3047.378622] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3047.378622] wg_pick_peer_by_sa:3827: success
[  3047.378622] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3047.378622] wg_fill_msg_data: counter=19
[  3048.379627] wg_overudp_cb:3256: enter
[  3048.379627] wg_overudp_cb: type=4
[  3048.380755] wg_handle_msg_data:2561: data
[  3048.380755] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3048.380755] wg_handle_msg_data: outsize=96
[  3048.380755] wg_validate_inner_packet: af=2
[  3048.380755] wg_validate_inner_packet: packet_len=84
[  3048.380755] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3048.380755] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3048.380755] wg_pick_peer_by_sa:3827: success
[  3048.380755] wg_input:4105: 
[  3048.380755] wg_handle_msg_data: time_uptime=3048 wgs_time_last_data_sent=3047
[  3048.380755] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3048.380755] wg_pick_peer_by_sa:3827: success
[  3048.380755] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3048.380755] wg_fill_msg_data: counter=20
[  3049.368634] wg_overudp_cb:3256: enter
[  3049.369767] wg_overudp_cb: type=4
[  3049.369767] wg_handle_msg_data:2561: data
[  3049.369767] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3049.369767] wg_handle_msg_data: outsize=96
[  3049.369767] wg_validate_inner_packet: af=2
[  3049.369767] wg_validate_inner_packet: packet_len=84
[  3049.369767] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3049.369767] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3049.369767] wg_pick_peer_by_sa:3827: success
[  3049.369767] wg_input:4105: 
[  3049.369767] wg_handle_msg_data: time_uptime=3049 wgs_time_last_data_sent=3048
[  3049.369767] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3049.369767] wg_pick_peer_by_sa:3827: success
[  3049.369767] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3049.369767] wg_fill_msg_data: counter=21
[  3050.377641] wg_overudp_cb:3256: enter
[  3050.378646] wg_overudp_cb: type=4
[  3050.378646] wg_handle_msg_data:2561: data
[  3050.378646] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3050.378646] wg_handle_msg_data: outsize=96
[  3050.378646] wg_validate_inner_packet: af=2
[  3050.378646] wg_validate_inner_packet: packet_len=84
[  3050.378646] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3050.378646] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3050.378646] wg_pick_peer_by_sa:3827: success
[  3050.378646] wg_input:4105: 
[  3050.378646] wg_handle_msg_data: time_uptime=3050 wgs_time_last_data_sent=3049
[  3050.378646] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3050.378646] wg_pick_peer_by_sa:3827: success
[  3050.378646] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3050.378646] wg_fill_msg_data: counter=22
[  3051.379642] wg_overudp_cb:3256: enter
[  3051.380644] wg_overudp_cb: type=4
[  3051.380644] wg_handle_msg_data:2561: data
[  3051.380644] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3051.380644] wg_handle_msg_data: outsize=96
[  3051.380644] wg_validate_inner_packet: af=2
[  3051.380644] wg_validate_inner_packet: packet_len=84
[  3051.380644] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3051.380644] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3051.380644] wg_pick_peer_by_sa:3827: success
[  3051.380644] wg_input:4105: 
[  3051.380644] wg_handle_msg_data: time_uptime=3051 wgs_time_last_data_sent=3050
[  3051.380644] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3051.380644] wg_pick_peer_by_sa:3827: success
[  3051.380644] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3051.380644] wg_fill_msg_data: counter=23
[  3052.377645] wg_overudp_cb:3256: enter
[  3052.377645] wg_overudp_cb: type=4
[  3052.377645] wg_handle_msg_data:2561: data
[  3052.378670] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3052.378670] wg_handle_msg_data: outsize=96
[  3052.378670] wg_validate_inner_packet: af=2
[  3052.378670] wg_validate_inner_packet: packet_len=84
[  3052.378670] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3052.378670] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3052.378670] wg_pick_peer_by_sa:3827: success
[  3052.378670] wg_input:4105: 
[  3052.378670] wg_handle_msg_data: time_uptime=3052 wgs_time_last_data_sent=3051
[  3052.378670] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3052.378670] wg_pick_peer_by_sa:3827: success
[  3052.378670] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3052.378670] wg_fill_msg_data: counter=24
[  3053.377652] wg_overudp_cb:3256: enter
[  3053.377652] wg_overudp_cb: type=4
[  3053.377652] wg_handle_msg_data:2561: data
[  3053.378666] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3053.378666] wg_handle_msg_data: outsize=96
[  3053.378666] wg_validate_inner_packet: af=2
[  3053.378666] wg_validate_inner_packet: packet_len=84
[  3053.378666] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3053.378666] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3053.378666] wg_pick_peer_by_sa:3827: success
[  3053.378666] wg_input:4105: 
[  3053.378666] wg_handle_msg_data: time_uptime=3053 wgs_time_last_data_sent=3052
[  3053.378666] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3053.378666] wg_pick_peer_by_sa:3827: success
[  3053.378666] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3053.378666] wg_fill_msg_data: counter=25
[  3054.377659] wg_overudp_cb:3256: enter
[  3054.377659] wg_overudp_cb: type=4
[  3054.378671] wg_handle_msg_data:2561: data
[  3054.378671] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3054.378671] wg_handle_msg_data: outsize=96
[  3054.378671] wg_validate_inner_packet: af=2
[  3054.378671] wg_validate_inner_packet: packet_len=84
[  3054.378671] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3054.378671] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3054.378671] wg_pick_peer_by_sa:3827: success
[  3054.378671] wg_input:4105: 
[  3054.378671] wg_handle_msg_data: time_uptime=3054 wgs_time_last_data_sent=3053
[  3054.378671] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3054.378671] wg_pick_peer_by_sa:3827: success
[  3054.378671] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3054.378671] wg_fill_msg_data: counter=26
[  3055.377666] wg_overudp_cb:3256: enter
[  3055.377666] wg_overudp_cb: type=4
[  3055.377666] wg_handle_msg_data:2561: data
[  3055.378690] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3055.378690] wg_handle_msg_data: outsize=96
[  3055.378690] wg_validate_inner_packet: af=2
[  3055.378690] wg_validate_inner_packet: packet_len=84
[  3055.378690] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3055.378690] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3055.378690] wg_pick_peer_by_sa:3827: success
[  3055.378690] wg_input:4105: 
[  3055.378690] wg_handle_msg_data: time_uptime=3055 wgs_time_last_data_sent=3054
[  3055.378690] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3055.378690] wg_pick_peer_by_sa:3827: success
[  3055.378690] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3055.378690] wg_fill_msg_data: counter=27
[  3056.377673] wg_overudp_cb:3256: enter
[  3056.377673] wg_overudp_cb: type=4
[  3056.378674] wg_handle_msg_data:2561: data
[  3056.378674] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3056.378674] wg_handle_msg_data: outsize=96
[  3056.378674] wg_validate_inner_packet: af=2
[  3056.378674] wg_validate_inner_packet: packet_len=84
[  3056.378674] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3056.378674] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3056.378674] wg_pick_peer_by_sa:3827: success
[  3056.378674] wg_input:4105: 
[  3056.378674] wg_handle_msg_data: time_uptime=3056 wgs_time_last_data_sent=3055
[  3056.378674] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3056.378674] wg_pick_peer_by_sa:3827: success
[  3056.378674] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3056.378674] wg_fill_msg_data: counter=28
[  3057.368680] wg_overudp_cb:3256: enter
[  3057.369694] wg_overudp_cb: type=4
[  3057.369694] wg_handle_msg_data:2561: data
[  3057.369694] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3057.369694] wg_handle_msg_data: outsize=96
[  3057.369694] wg_validate_inner_packet: af=2
[  3057.369694] wg_validate_inner_packet: packet_len=84
[  3057.369694] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3057.369694] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3057.369694] wg_pick_peer_by_sa:3827: success
[  3057.369694] wg_input:4105: 
[  3057.369694] wg_handle_msg_data: time_uptime=3057 wgs_time_last_data_sent=3056
[  3057.369694] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3057.369694] wg_pick_peer_by_sa:3827: success
[  3057.369694] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3057.369694] wg_fill_msg_data: counter=29
[  3058.377689] wg_overudp_cb:3256: enter
[  3058.377689] wg_overudp_cb: type=4
[  3058.377689] wg_handle_msg_data:2561: data
[  3058.377689] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3058.378741] wg_handle_msg_data: outsize=96
[  3058.378741] wg_validate_inner_packet: af=2
[  3058.378741] wg_validate_inner_packet: packet_len=84
[  3058.378741] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3058.378741] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3058.378741] wg_pick_peer_by_sa:3827: success
[  3058.378741] wg_input:4105: 
[  3058.378741] wg_handle_msg_data: time_uptime=3058 wgs_time_last_data_sent=3057
[  3058.378741] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3058.378741] wg_pick_peer_by_sa:3827: success
[  3058.378741] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3058.378741] wg_fill_msg_data: counter=30
[  3059.377695] wg_overudp_cb:3256: enter
[  3059.377695] wg_overudp_cb: type=4
[  3059.377695] wg_handle_msg_data:2561: data
[  3059.377695] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3059.378716] wg_handle_msg_data: outsize=96
[  3059.378716] wg_validate_inner_packet: af=2
[  3059.378716] wg_validate_inner_packet: packet_len=84
[  3059.378716] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3059.378716] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3059.378716] wg_pick_peer_by_sa:3827: success
[  3059.378716] wg_input:4105: 
[  3059.378716] wg_handle_msg_data: time_uptime=3059 wgs_time_last_data_sent=3058
[  3059.378716] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3059.378716] wg_pick_peer_by_sa:3827: success
[  3059.378716] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3059.378716] wg_fill_msg_data: counter=31
[  3060.379700] wg_overudp_cb:3256: enter
[  3060.379700] wg_overudp_cb: type=4
[  3060.379700] wg_handle_msg_data:2561: data
[  3060.379700] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3060.380731] wg_handle_msg_data: outsize=96
[  3060.380731] wg_validate_inner_packet: af=2
[  3060.380731] wg_validate_inner_packet: packet_len=84
[  3060.380731] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3060.380731] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3060.380731] wg_pick_peer_by_sa:3827: success
[  3060.380731] wg_input:4105: 
[  3060.380731] wg_handle_msg_data: time_uptime=3060 wgs_time_last_data_sent=3059
[  3060.380731] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3060.380731] wg_pick_peer_by_sa:3827: success
[  3060.380731] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3060.380731] wg_fill_msg_data: counter=32
[  3061.376704] wg_overudp_cb:3256: enter
[  3061.376704] wg_overudp_cb: type=4
[  3061.377705] wg_handle_msg_data:2561: data
[  3061.377705] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3061.377705] wg_handle_msg_data: outsize=96
[  3061.377705] wg_validate_inner_packet: af=2
[  3061.377705] wg_validate_inner_packet: packet_len=84
[  3061.377705] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3061.377705] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3061.377705] wg_pick_peer_by_sa:3827: success
[  3061.377705] wg_input:4105: 
[  3061.377705] wg_handle_msg_data: time_uptime=3061 wgs_time_last_data_sent=3060
[  3061.377705] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3061.377705] wg_pick_peer_by_sa:3827: success
[  3061.377705] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3061.377705] wg_fill_msg_data: counter=33
[  3062.283704] wg_schedule_peer_task: tasks=0, task=1
[  3062.283704] wg_task_send_init_message:2972: WGP_TASK_SEND_INIT_MESSAGE
[  3062.283704] wg_fill_msg_init: wg_fill_msg_init: sender=e673586
[  3062.283704] wg_send_handshake_msg_init:1743: init msg sent
[  3062.357705] wg_overudp_cb:3256: enter
[  3062.357705] wg_overudp_cb: type=2
[  3062.357705] wg_overudp_cb:3256: enter
[  3062.357705] wg_overudp_cb: type=4
[  3062.358729] wg_handle_msg_data:2561: data
[  3062.358729] wg_handle_msg_data: mlen=128, encrypted_len=112
[  3062.358729] wg_handle_msg_data: outsize=96
[  3062.358729] wg_validate_inner_packet: af=2
[  3062.358729] wg_validate_inner_packet: packet_len=84
[  3062.358729] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490
[  3062.358729] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3062.358729] wg_pick_peer_by_sa:3827: success
[  3062.358729] wg_input:4105: 
[  3062.358729] wg_handle_msg_data: time_uptime=3062 wgs_time_last_data_sent=3061
[  3062.358729] wg_handle_msg_resp:1900: resp msg received
[  3062.358729] wg_pick_peer_by_sa: sa=inet: 10.2.0.2
[  3062.358729] wg_pick_peer_by_sa:3827: success
[  3062.358729] wg_send_data_msg: inner=84, padded=96, encrypted_len=112
[  3062.358729] wg_fill_msg_data: counter=34
[  3062.358729] wg_handle_msg_resp: receiver=7734a07a
[  3062.358729] wg_handle_msg_resp:2021: WGS_STATE_ESTABLISHED
[  3062.359705] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.231.82:18490

XXX: PING STOPS

[  3062.359705] wg_send_keepalive_msg:2329: 
[  3062.359705] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  3062.359705] wg_fill_msg_data: counter=0
[  3063.359711] wg_session_dtor_timer:2477: enter
[  3063.359711] wg_schedule_peer_task: tasks=0, task=32
[  3063.359711] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION
[  3063.379711] wg_overudp_cb:3256: enter
[  3063.379711] wg_overudp_cb: type=4
[  3063.379711] wg_handle_msg_data:2561: data
[  3063.379711] wg_handle_msg_data:2566: No session found
[  3064.400719] wg_overudp_cb:3256: enter
[  3064.400719] wg_overudp_cb: type=4
[  3064.401840] wg_handle_msg_data:2561: data
[  3064.401840] wg_handle_msg_data:2566: No session found
[  3065.377725] wg_overudp_cb:3256: enter
[  3065.377725] wg_overudp_cb: type=4
[  3065.377725] wg_handle_msg_data:2561: data
[  3065.377725] wg_handle_msg_data:2566: No session found
[  3147.879222] wg_overudp_cb:3256: enter
[  3147.879222] wg_overudp_cb: type=1
[  3147.879222] wg_handle_msg_init:1447: init msg received
[  3147.879222] wg_update_endpoint_if_necessary: old=inet: 172.58.231.82:18490, new=inet: 172.58.228.47:29844
[  3147.879222] wg_change_endpoint:2374: Changing endpoint
[  3147.879222] wg_schedule_peer_task: tasks=0, task=8
[  3147.879222] wg_fill_msg_resp: sender=929e1740
[  3147.880217] wg_fill_msg_resp: receiver=7734a07a
[  3147.880217] wg_send_handshake_msg_resp:2098: resp msg sent
[  3147.880217] wg_task_endpoint_changed:3095: WGP_TASK_ENDPOINT_CHANGED
[  3182.360415] wg_schedule_peer_task: tasks=0, task=1
[  3182.360415] wg_task_send_init_message:2972: WGP_TASK_SEND_INIT_MESSAGE
[  3182.360415] wg_send_handshake_msg_init:1718: Session already initializing, destroying old states
[  3182.360415] wg_fill_msg_init: wg_fill_msg_init: sender=929e1740
[  3182.360415] wg_send_handshake_msg_init:1743: init msg sent
[  3182.986420] wg_overudp_cb:3256: enter
[  3182.986420] wg_overudp_cb: type=2
[  3182.986420] wg_handle_msg_resp:1900: resp msg received
[  3182.986420] wg_handle_msg_resp: receiver=1dd7cc14
[  3182.986420] wg_handle_msg_resp:2021: WGS_STATE_ESTABLISHED
[  3182.986420] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:29844, new=inet: 172.58.228.47:29844
[  3182.986420] wg_send_keepalive_msg:2329: 
[  3182.986420] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  3182.986420] wg_fill_msg_data: counter=0
[  3183.986426] wg_session_dtor_timer:2477: enter
[  3183.987428] wg_schedule_peer_task: tasks=0, task=32
[  3183.987428] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION
[  3268.159926] wg_overudp_cb:3256: enter
[  3268.159926] wg_overudp_cb: type=1
[  3268.159926] wg_handle_msg_init:1447: init msg received
[  3268.160926] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:29844, new=inet: 172.58.228.47:21242
[  3268.160926] wg_change_endpoint:2374: Changing endpoint
[  3268.160926] wg_schedule_peer_task: tasks=0, task=8
[  3268.160926] wg_fill_msg_resp: sender=d4c19a6c
[  3268.160926] wg_fill_msg_resp: receiver=1dd7cc14
[  3268.160926] wg_send_handshake_msg_resp:2098: resp msg sent
[  3268.160926] wg_task_endpoint_changed:3095: WGP_TASK_ENDPOINT_CHANGED
[  3268.229926] wg_overudp_cb:3256: enter
[  3268.229926] wg_overudp_cb: type=4
[  3268.229926] wg_handle_msg_data:2561: data
[  3268.229926] wg_handle_msg_data: mlen=32, encrypted_len=16
[  3268.229926] wg_handle_msg_data: outsize=0
[  3302.987124] wg_schedule_peer_task: tasks=0, task=1
[  3302.987124] wg_task_send_init_message:2972: WGP_TASK_SEND_INIT_MESSAGE
[  3302.988125] wg_send_handshake_msg_init:1718: Session already initializing, destroying old states
[  3302.988125] wg_fill_msg_init: wg_fill_msg_init: sender=d4c19a6c
[  3302.988125] wg_send_handshake_msg_init:1743: init msg sent
[  3304.601136] wg_overudp_cb:3256: enter
[  3304.601136] wg_overudp_cb: type=2
[  3304.601136] wg_handle_msg_resp:1900: resp msg received
[  3304.601136] wg_handle_msg_resp: receiver=5ccb00e8
[  3304.602136] wg_handle_msg_resp:2021: WGS_STATE_ESTABLISHED
[  3304.602136] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:21242, new=inet: 172.58.228.47:21242
[  3304.602136] wg_send_keepalive_msg:2329: 
[  3304.602136] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  3304.602136] wg_fill_msg_data: counter=0
[  3305.602142] wg_session_dtor_timer:2477: enter
[  3305.602142] wg_schedule_peer_task: tasks=0, task=32
[  3305.602142] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION
[  3388.434629] wg_overudp_cb:3256: enter
[  3388.434629] wg_overudp_cb: type=1
[  3388.434629] wg_handle_msg_init:1447: init msg received
[  3388.434629] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:21242, new=inet: 172.58.228.47:15666
[  3388.434629] wg_change_endpoint:2374: Changing endpoint
[  3388.434629] wg_schedule_peer_task: tasks=0, task=8
[  3388.435629] wg_fill_msg_resp: sender=ef006a1
[  3388.435629] wg_fill_msg_resp: receiver=5ccb00e8
[  3388.435629] wg_send_handshake_msg_resp:2098: resp msg sent
[  3388.435629] wg_task_endpoint_changed:3095: WGP_TASK_ENDPOINT_CHANGED
[  3389.545636] wg_overudp_cb:3256: enter
[  3389.545636] wg_overudp_cb: type=4
[  3389.545636] wg_handle_msg_data:2561: data
[  3389.545636] wg_handle_msg_data: mlen=32, encrypted_len=16
[  3389.545636] wg_handle_msg_data: outsize=0
[  3424.602837] wg_schedule_peer_task: tasks=0, task=1
[  3424.602837] wg_task_send_init_message:2972: WGP_TASK_SEND_INIT_MESSAGE
[  3424.602837] wg_send_handshake_msg_init:1718: Session already initializing, destroying old states
[  3424.602837] wg_fill_msg_init: wg_fill_msg_init: sender=ef006a1
[  3424.602837] wg_send_handshake_msg_init:1743: init msg sent
[  3426.180847] wg_overudp_cb:3256: enter
[  3426.180847] wg_overudp_cb: type=2
[  3426.181872] wg_handle_msg_resp:1900: resp msg received
[  3426.181872] wg_handle_msg_resp: receiver=9fa85a5f
[  3426.181872] wg_handle_msg_resp:2021: WGS_STATE_ESTABLISHED
[  3426.181872] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:15666, new=inet: 172.58.228.47:15666
[  3426.181872] wg_send_keepalive_msg:2329: 
[  3426.181872] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  3426.181872] wg_fill_msg_data: counter=0
[  3427.181854] wg_session_dtor_timer:2477: enter
[  3427.181854] wg_schedule_peer_task: tasks=0, task=32
[  3427.181854] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION
[  3509.756335] wg_overudp_cb:3256: enter
[  3509.756335] wg_overudp_cb: type=1
[  3509.756335] wg_handle_msg_init:1447: init msg received
[  3509.756335] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:15666, new=inet: 172.58.228.47:21405
[  3509.757335] wg_change_endpoint:2374: Changing endpoint
[  3509.757335] wg_schedule_peer_task: tasks=0, task=8
[  3509.757335] wg_fill_msg_resp: sender=24b9e1eb
[  3509.757335] wg_fill_msg_resp: receiver=9fa85a5f
[  3509.757335] wg_send_handshake_msg_resp:2098: resp msg sent
[  3509.757335] wg_task_endpoint_changed:3095: WGP_TASK_ENDPOINT_CHANGED
[  3509.843335] wg_overudp_cb:3256: enter
[  3509.843335] wg_overudp_cb: type=4
[  3509.843335] wg_handle_msg_data:2561: data
[  3509.843335] wg_handle_msg_data: mlen=32, encrypted_len=16
[  3509.843335] wg_handle_msg_data: outsize=0
[  3546.182544] wg_schedule_peer_task: tasks=0, task=1
[  3546.182544] wg_task_send_init_message:2972: WGP_TASK_SEND_INIT_MESSAGE
[  3546.182544] wg_send_handshake_msg_init:1718: Session already initializing, destroying old states
[  3546.183542] wg_fill_msg_init: wg_fill_msg_init: sender=24b9e1eb
[  3546.183542] wg_send_handshake_msg_init:1743: init msg sent
[  3546.283542] wg_overudp_cb:3256: enter
[  3546.283542] wg_overudp_cb: type=2
[  3546.284552] wg_handle_msg_resp:1900: resp msg received
[  3546.284552] wg_handle_msg_resp: receiver=a3164b5b
[  3546.284552] wg_handle_msg_resp:2021: WGS_STATE_ESTABLISHED
[  3546.284552] wg_update_endpoint_if_necessary: old=inet: 172.58.228.47:21405, new=inet: 172.58.228.47:21405
[  3546.284552] wg_send_keepalive_msg:2329: 
[  3546.284552] wg_send_data_msg: inner=0, padded=0, encrypted_len=16
[  3546.284552] wg_fill_msg_data: counter=0
[  3547.284551] wg_session_dtor_timer:2477: enter
[  3547.284551] wg_schedule_peer_task: tasks=0, task=32
[  3547.284551] wg_task_destroy_prev_session:3132: WGP_TASK_DESTROY_PREV_SESSION
>Fix:
?

>Release-Note:

>Audit-Trail:

>Unformatted:
 	does it edit now?

  Date: Sun, 28 Jul 2024 14:37:59 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:37:59 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Rework some details of internal session state machine.

   This way:

   - There is a clear transition between when a session is being set up,
     and when it is exposed to the data rx path (wg_handle_msg_data):
     atomic_store_release to set wgs->wgs_state to INIT_PASSIVE or
     ESTABLISHED.

     (The transition INIT_PASSIVE -> ESTABLISHED is immaterial to the
     data rx path, so that's just atomic_store_relaxed.  Similarly the
     transition to DESTROYING.)

   - There is a clear transition between when a session is being set up,
     and when it is exposed to the data tx path (wg_output):
     atomic_store_release to set wgp->wgp_session_stable to it.

   - Every path that reinitializes a session must go through
     wg_destroy_session via wg_put_index_session first.  This avoids
     races between session reuse and the data rx/tx paths.

   - Add a log message at the time of every state transition.

   Prompted by:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.93 -r1.94 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:38:19 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:38:19 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Fix logic to ensure session initiation is underway.

   Previously, wg_task_send_init_message would call
   wg_send_handshake_msg_init if either:

   (a) the stable session is UNKNOWN, meaning a session has not yet been
       established, either by us or by the peer (but it could be in
       progress); or

   (b) the stable session is not UNKNOWN but the unstable session is
       _not_ INIT_ACTIVE, meaning there is an established session and we
       are not currently initiating a new session.

   If wg_output (or wgintr) found no established session while there was
   already a session being initiated, we may only enter
   wg_task_send_init_message after the session is already established,
   and trigger spurious reinitiation.

   Instead, create a separate flag to indicate whether it is mandatory
   to rekey because limits have passed.  Then create a session only if:

   (a) the stable session is not ESTABLISHED, or
   (b) the mandatory rekey flag is not set,

   and clear the mandatory rekey flag.

   While here, arrange to do rekey-after-time on tx, not on callout.  If
   there's no data to tx, we shouldn't reinitiate a session -- we should
   stay quiet on the network.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.94 -r1.95 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:38:43 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:38:42 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Use callout_halt, not callout_stop.

   It's possible that callout_stop might work here, but let's simplify
   reasoning about it -- the timers in question only take the peer intr
   lock, so it's safe to wait for them while holding the peer lock in
   the handshake worker thread.

   We may have to undo the task bit but that will take a bit more
   analysis to determine.

   Prompted by (but probably won't fix anything in):

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.95 -r1.96 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:39:00 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:39:00 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Omit needless pserialize_perform on transition to DESTROYING.

   A session can still be used when it is in the DESTROYING state, so
   there's no need to wait for users to drain here -- that's the whole
   point of a separate DESTROYING state.

   It is only the transition from DESTROYING back to UNKNOWN, after the
   session has been unpublished so no new users can begin, that requires
   waiting for all users to drain, and we already do that in
   wg_destroy_session.

   Prompted by (but won't fix anything in, because this is just a
   performance optimization):

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.96 -r1.97 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:39:36 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:39:36 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Mark wgp_pending volatile to reflect its usage.

   Prompted by (but won't fix any part of):

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.98 -r1.99 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:40:03 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:40:02 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Fix session destruction.

   Schedule destruction as soon as the session is created, to ensure key
   erasure within 2*reject-after-time seconds.  Previously, we would
   schedule destruction of the previous session 1 second after the next
   one has been established.  Combined with a failure to update the
   state machine on keepalive packets, this led to temporary deadlock
   scenarios.

   To keep it simple, there's just one callout which runs every
   reject-after-time seconds and erases keys in sessions older than
   reject-after-time, so if a session is established the moment after it
   runs, the keys might not be erased until (2-eps)*reject-after-time
   seconds.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.99 -r1.100 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:45:33 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:45:33 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Reject rx on sessions older than reject-after-time sec.

   Prompted by (but won't fix anything in):

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.100 -r1.101 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:45:51 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:45:51 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): On rx of valid ciphertext, make sure to update state machine.

   Previously, we also required the plaintext to be a plausible-looking
   IP packet before updating the state machine.

   But keepalive packets are empty -- and if the peer initiated the
   session to rekey after last tx but had no more data to tx, it will
   send a keepalive to finish session initiation.

   If we didn't update the state machine in that case, we would stay in
   INIT_PASSIVE state unable to tx on the session, which would make
   things hang.

   So make sure to always update the state machine once we have accepted
   a packet as genuine, even if it's genuine garbage on the inside.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.101 -r1.102 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:46:17 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:46:16 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Make sure to update endpoint on keepalive packets too.

   Prompted by:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.102 -r1.103 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:46:44 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/tests/net/if_wg

  >Number:         58491
  >Category:       pending
  >Synopsis:       PR/58463 CVS commit: src/tests/net/if_wg
  >Confidential:   yes
  >Severity:       serious
  >Priority:       medium
  >Responsible:    gnats-admin
  >State:          open
  >Class:          sw-bug
  >Submitter-Id:   unknown
  >Arrival-Date:   Sun Jul 28 14:50:14 +0000 2024
  >Originator:     riastradh@netbsd.org
  >Description:
   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:46:44 UTC 2024

   Modified Files:
   	src/tests/net/if_wg: t_misc.sh

   Log Message:
   tests/net/if_wg/t_misc: Elaborate in wg_rekey debug messages.

   Helpful for following the test log when things go wrong.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.13 -r1.14 src/tests/net/if_wg/t_misc.sh

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:47:06 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/tests/net/if_wg

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:47:06 UTC 2024

   Modified Files:
   	src/tests/net/if_wg: t_misc.sh

   Log Message:
   wg(4): Tests should pass now.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.14 -r1.15 src/tests/net/if_wg/t_misc.sh

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:47:37 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:47:37 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Use 32-bit for times handled in rx/tx paths.

   The rx and tx paths require unlocked access to wgs_time_established
   (to decide whether it's time to rekey) and wgs_time_last_data_sent
   (to decide whether we need to reply to incoming data with a keepalive
   packet), so do it with atomic_load/store_*.

   On 32-bit platforms, we may not be able to do that on time_t.
   However, since sessions only last for a few minutes before
   reject-after-time kicks in and they are erased, 32 bits is plenty to
   record the durations that we need to record here, so this shouldn't
   introduce any new bugs even on hosts that exceed 136 years of uptime.

   Prompted by:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.103 -r1.104 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:47:58 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:47:58 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Make time_uptime32 work in netbsd<=10.

   This is the low 32 bits of time_uptime.

   Will simplify pullups to 10 for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.104 -r1.105 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:48:14 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:48:13 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Fix quotation in comment.

   Prompted by:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.105 -r1.106 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:49:31 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:49:31 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Tidy up error branches.

   No functional change intended, except to add some log messages in
   failure cases.

   Cleanup after:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.107 -r1.108 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:50:31 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:50:31 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Delete temporary hacks to dump keys and packets.

   No longer useful for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.110 -r1.111 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Sun, 28 Jul 2024 14:55:30 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Sun Jul 28 14:55:30 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Explain why gethexdump/puthexdump is there, and tidy.

   This way I will not be tempted to replace it by in-line calls to
   libkern hexdump.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.111 -r1.112 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 02:28:59 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 02:28:58 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Put force_rekey state in the session, not the peer.

   That way, there is a time when one thread has exclusive access to the
   state, in wg_destroy_session under the peer lock, when we can clear
   the state without racing against the data tx path.

   This will work more reliably than the atomic_swap_uint I used before.

   Noted by kre@.

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.112 -r1.113 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 02:33:44 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 02:33:44 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Sprinkle comments into wg_swap_sessions.

   No functional change intended.

   Prompted by:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.115 -r1.116 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 02:33:59 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 02:33:58 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): No need for atomic access to wgs_time_established in tx/rx.

   This is stable while the session is visible to the tx/rx paths -- it
   is initialized before the session is exposed to tx/rx, and doesn't
   change until the session is no longer used by any tx/rx path and has
   been recycled.

   When I sprinkled atomic access to wgs_time_established in if_wg.c
   rev. 1.104, it was a vestige of an uncommitted draft that did the
   transition from INIT_PASSIVE to ESTABLISHED in the tx path itself, in
   an attempt to enable prompter tx on the new session as soon as it is
   established.  This turned out to be unnecessary, so I reverted most
   of it, but forgot that wgs_time_established no longer needed atomic
   treatment.

   We could go back to using time_t and time_uptime, now that there's no
   need to do atomic loads and stores on these quantities. But there's
   no point in 64-bit arithmetic when the time differences are all
   guaranteed bounded by a few minutes, so keeping it 32-bit is probably
   a slight performance improvement on 32-bit systems.

   (In contrast, wgs_time_last_data_sent is both written and read in the
   tx path, which may run in parallel on multiple CPUs, so it still
   requires the atomic treatment.)

   Tidying up for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.116 -r1.117 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 16:00:41 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 16:00:41 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Fix typo in comment recently added.

   Comment added in the service of:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.118 -r1.119 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 16:01:13 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 16:01:13 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Omit needless atomic_load.

   wgs_local_index is only ever written to while only one thread has
   access to it and it is not in the thmap -- before it is published in
   wg_get_session_index, and after it is unpublished in
   wg_destroy_session.  So no need for atomic_load -- it is stable if we
   observe it in thmap_get result.

   (Of course this is only for an assertion, which if tripped obviously
   indicates a violation of our assumptions.  But if that happens, well,
   in the worst case we'll see a weird assertion message claiming that
   the index is not equal to itself, which from which we can conclude
   there must have been a concurrent update, which is good enough to
   help diagnose that problem without any atomic_load.)

   Tidying some of the changes for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.119 -r1.120 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 16:02:05 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 16:02:05 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Deduplicate session establishment actions.

   The actions to

   (a) record the last handshake time,
   (b) clear some handshake state,
   (c) transmit first data if queued, or (if initiator) keepalive, and
   (d) begin destroying the old session,

   were formerly duplicated between wg_handle_msg_resp (for when we're
   the initiator) and wg_task_establish_session (for when we're the
   responder).

   Instead, let's factor this out into wg_swap_session so there's only
   one copy of the logic.

   This requires moving wg_update_endpoint_if_necessary a little earlier
   in wg_handle_msg_resp -- which should be done anyway so that the
   endpoint is updated _before_ the session is published for the data tx
   path to use.

   Other than moving wg_update_endpoint_if_necessary a little earlier,
   no functional change intended.

   Post-fix tidying for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.121 -r1.122 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 18:43:11 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 18:43:11 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Read wgs_state atomically in wg_get_stable_session.

   As noted in the comment above, it may concurrently transition from
   ESTABLISHED to DESTROYING.

   Post-fix tidying for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.122 -r1.123 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 19:43:56 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 19:43:56 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Force rekey on tx if session is older than reject-after-time.

   One more corner case for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.123 -r1.124 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 19:45:56 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 19:45:56 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Trigger session initiation in wgintr, not in wg_output.

   We have to look up the session in wgintr anyway, for
   wg_send_data_msg.  By triggering session initiation in wgintr instead
   of wg_output, we can skip the stable session lookup and reference in
   wg_output -- simpler that way.

   Post-fix tidying for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.125 -r1.126 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 19:47:00 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 19:47:00 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): When a session is established, send first packet directly.

   Like we would do with the keepalive packet, if we had to send that
   instead -- no need to defer it to the pktq.  Keep it simple.

   Post-fix tidying for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.127 -r1.128 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Mon, 29 Jul 2024 19:47:14 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Mon Jul 29 19:47:13 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Sprinkle volatile on variables requiring atomic access.

   No functional change intended, since the relevant access is always
   done with atomic_* when it might race with concurrent access -- and
   really this should be _Atomic or something.  But for now our
   atomic_ops(9) API is still spelled with volatile, so we'll use that.

   Post-fix tidying for:

   PR kern/55729: net/if_wg/t_misc:wg_rekey test case fails
   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.


   To generate a diff of this commit:
   cvs rdiff -u -r1.128 -r1.129 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

  Date: Wed, 31 Jul 2024 00:25:47 +0000
  From: "Taylor R Campbell" <riastradh@netbsd.org>
  Subject: PR/58463 CVS commit: src/sys/net

   Module Name:	src
   Committed By:	riastradh
   Date:		Wed Jul 31 00:25:47 UTC 2024

   Modified Files:
   	src/sys/net: if_wg.c

   Log Message:
   wg(4): Make a rule for who wins when both peers send INIT at once.

   The rule is that the peer with the numerically smaller public key
   hash, in little-endian, takes priority iff the low order bit of

   H(peer A pubkey) ^ H(peer B pubkey) ^ H(posix minutes as le64)

   is 0, and the peer with the lexicographically larger public key takes
   priority iff the low-order bit is 1.

   Another case of:

   PR kern/56252: wg(4) state machine has race conditions
   PR kern/58463: if_wg does not work when idle.

   This one is, as far as I can tell, simply a deadlock in the protocol
   of the whitepaper -- until both sides give up on the handshake and
   one of them (but not both) later decides to try sending data again.

   (But not related to our t_misc:wg_rekey test, as far as I can tell,
   and I haven't put enough thought into how to reliably trigger this
   race to write a new automatic test for it.)


   To generate a diff of this commit:
   cvs rdiff -u -r1.129 -r1.130 src/sys/net/if_wg.c

   Please note that diffs are not public domain; they are subject to the
   copyright notices on the relevant files.

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.47 2022/09/11 19:34:41 kim Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2024 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.