Continuing from misc@: I have two different gateway machines, one with em(4), one with igc(4) that exhibit the problem.
With an iked.conf policy like this: ikev2 "foo" esp \ from 192.168.5.0/24 to dynamic \ [...] \ peer any \ [...] where 192.168.5.1 is an address on the gateway itself and the default route is on pppoe0 upon vlan7 upon em0/igc0. TCP MSS is clamped in pf.conf for the IPSec tunnel: match on enc0 all scrub (max-mss 1228) This works as expected for any machine on the 192.168.5.0/24 network. However, TCP connections to 192.168.5.1 will receive huge return packets that get fragmented over pppoe0. Setting net.inet.tcp.tso=0 restores expected behaviour. So there is a bug somewhere when making the decision to rely on TSO for TCP segmentation.