testing: Actually send an uncompressed packet in the ipv6/rw-compress-ikev2 scenario
authorTobias Brunner <tobias@strongswan.org>
Mon, 21 Sep 2015 08:12:24 +0000 (10:12 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 6 Oct 2015 13:48:55 +0000 (15:48 +0200)
commitc6aa606a659704d4a4855a6ab1f698fada9dd77e
tree621dfbeaa882e7024008114fac797ee81aa095e1
parent382f8a334a1c47bde577d95870de6f557748cb85
testing: Actually send an uncompressed packet in the ipv6/rw-compress-ikev2 scenario

The default of 56 bytes already exceeds the threshold of 90 bytes (8 bytes
ICMP + 40 bytes IPv6 = 104 bytes).  By reducing the size we make sure the
packet is not compressed (40 + 8 + 40 = 88).

This also fixes a strange failure of this scenario due to the recently
added post-test `ip xfrm state` check.  The kernel stores a reference to
the used SAs on the inbound skbuffs and since these are garbage collected
it could take a while until all references to an SA disappear and the SA
is finally destroyed.  But while SAs might not get destroyed immediately
when we delete them, they are actually marked as dead and therefore won't
show up in `ip xfrm state`.  However, that's not the case for the tunnel
SAs the kernel attaches to IPComp SAs, which we don't explicitly delete,
and which aren't modified by the kernel until the IPComp SA is destroyed.
So what happened when the last ping unintentionally got compressed is that
the skbuff had a reference to the IPComp SA and therefore the tunnel SA.
This skbuff often was destroyed after the `ip xfrm state` check ran and
because the tunnel SA would still get reported the test case failed.
testing/tests/ipv6/rw-compress-ikev2/evaltest.dat