/testing/guestbin/swan-prep --nokeys
Creating empty NSS database
west #
 ipsec start
Redirecting to: [initsystem]
west #
 ../../guestbin/wait-until-pluto-started
west #
 ipsec auto --add west
"west": added IKEv2 connection
west #
 # confirm max bytes for IPsec SA is set
west #
 ipsec status |grep ipsec_max_bytes
"west":   ike_life: 28800s; ipsec_life: 28800s; ipsec_max_bytes: 2KiB; ipsec_max_packets: 2^63; replay_window: 128; rekey_margin: 540s; rekey_fuzz: 100%;
west #
 echo "initdone"
initdone
west #
 ipsec whack --impair ignore_soft_expire
west #
 ipsec auto --up west
"west" #1: initiating IKEv2 connection to 192.1.2.23 using UDP
"west" #1: sent IKE_SA_INIT request to 192.1.2.23:UDP/500
"west" #1: processed IKE_SA_INIT response from 192.1.2.23:UDP/500 {cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=DH19}, initiating IKE_AUTH
"west" #1: sent IKE_AUTH request to 192.1.2.23:UDP/500
"west" #1: initiator established IKE SA; authenticated peer using authby=secret and ID_FQDN '@east'
"west" #2: initiator established Child SA using #1; IPsec tunnel [192.0.1.0/24===192.0.2.0/24] {ESP/ESN=>0xESPESP <0xESPESP xfrm=AES_GCM_16_256-NONE DPD=passive}
west #
 # pings will not trigger a soft expire
west #
 ping -n -q -c 18 -I 192.0.1.254 192.0.2.254
PING 192.0.2.254 (192.0.2.254) from 192.0.1.254 : 56(84) bytes of data.
--- 192.0.2.254 ping statistics ---
18 packets transmitted, 18 received, 0% packet loss, time XXXX
rtt min/avg/max/mdev = 0.XXX/0.XXX/0.XXX/0.XXX ms
west #
 # expect #2 IPsec original Child SA
west #
 ipsec trafficstatus
#2: "west", type=ESP, add_time=1234567890, inBytes=1512, outBytes=1512, maxBytes=2KiB, id='@east'
west #
 # now trigger soft expire
west #
 ping -n -q -c 8 -I 192.0.1.254 192.0.2.254
PING 192.0.2.254 (192.0.2.254) from 192.0.1.254 : 56(84) bytes of data.
--- 192.0.2.254 ping statistics ---
8 packets transmitted, 7 received, 12.5% packet loss, time XXXXms
rtt min/avg/max/mdev = 0.XXX/0.XXX/0.XXX/0.XXX ms
west #
 # #2 will still around
west #
 ipsec trafficstatus
#3: "west", type=ESP, add_time=1234567890, inBytes=0, outBytes=0, maxBytes=2KiB, id='@east'
west #
 # now trigger hard expire
west #
 ../../guestbin/fping-short.sh --lossy 15 -I 192.0.1.254 192.0.2.254
up
west #
 sleep 5
west #
 # expect #3 a new Child SA(not rekeyed). Rekey will not happen because of impair-soft-expire
west #
 ../../guestbin/ipsec-trafficstatus.sh
#3: "west", type=ESP, add_time=1234567890, inBytes=XXX, outBytes=XXX, maxBytes=2KiB, id='@east'
west #
 echo done
done
west #
 ../../guestbin/ipsec-kernel-state.sh
src 192.1.2.45 dst 192.1.2.23
	proto esp spi 0xSPISPI reqid REQID mode tunnel
	replay-window 0 flag af-unspec esn
	aead rfc4106(gcm(aes)) 0xENCAUTHKEY 128
	lastused YYYY-MM-DD HH:MM:SS
	anti-replay esn context:
	 seq-hi 0x0, seq 0xXX, oseq-hi 0x0, oseq 0xXX
	 replay_window 128, bitmap-length 4
	 00000000 00000000 00000000 XXXXXXXX 
src 192.1.2.23 dst 192.1.2.45
	proto esp spi 0xSPISPI reqid REQID mode tunnel
	replay-window 0 flag af-unspec esn
	aead rfc4106(gcm(aes)) 0xENCAUTHKEY 128
	lastused YYYY-MM-DD HH:MM:SS
	anti-replay esn context:
	 seq-hi 0x0, seq 0xXX, oseq-hi 0x0, oseq 0xXX
	 replay_window 128, bitmap-length 4
	 00000000 00000000 00000000 XXXXXXXX 
west #
 ../../guestbin/ipsec-kernel-policy.sh
src 192.0.1.0/24 dst 192.0.2.0/24
	dir out priority PRIORITY ptype main
	tmpl src 192.1.2.45 dst 192.1.2.23
		proto esp reqid REQID mode tunnel
src 192.0.2.0/24 dst 192.0.1.0/24
	dir fwd priority PRIORITY ptype main
	tmpl src 192.1.2.23 dst 192.1.2.45
		proto esp reqid REQID mode tunnel
src 192.0.2.0/24 dst 192.0.1.0/24
	dir in priority PRIORITY ptype main
	tmpl src 192.1.2.23 dst 192.1.2.45
		proto esp reqid REQID mode tunnel
west #
 # should be absent
west #
 grep "initiating rekey to replace Child SA" OUTPUT/$(hostname).pluto.log
west #
 # should match on west twice
west #
 grep "initiating Child SA using IKE SA" OUTPUT/$(hostname).pluto.log || echo "success"
"west" #3: initiating Child SA using IKE SA #1
west #
 
