// Test basic AccECN negotiation with option off using sysctl

`./defaults.sh
sysctl -q net.ipv4.tcp_ecn=3
sysctl -q net.ipv4.tcp_ecn_option=0
`

    0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
   +0 bind(3, ..., ...) = 0
   +0 listen(3, 1) = 0

   +0 < SEWA 0:0(0) win 32792 <mss 1050,nop,nop,sackOK,nop,wscale 8>
+.002 > SW. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 8>
+0.05 < [ect0] W. 1:1(0) ack 1 win 320 <ECN e0b 1 ceb 0 e1b 1,nop>
+.002 accept(3, ..., ...) = 4

+0.01 %{ assert tcpi_delivered_ce == 0, tcpi_delivered_ce }%

+0.01 write(4, ..., 1000) = 1000
+.002 > [ect0] EAP. 1:1001(1000) ack 1
+0.05 < [ect0] EAP. 1:1(0) ack 1001 win 320

+0.01 %{ assert tcpi_delivered_ce == 0, tcpi_delivered_ce }%

+0.01 write(4, ..., 1000) = 1000
+.002 > [ect0] EAP. 1001:2001(1000) ack 1
