On 6/24/26 5:45 PM, David Marchand wrote:
> A new test on fragmentation will be added soon, add some helper to make
> this code less unreadable.
> 
> This helper hardcodes the IP ID and checksum to some fixed value.
> About the latter, flag the checksum as good via the netdev-dummy port
> setting.

Thanks, David!  It's not the prettiest code either, but definitely much
better than before.

> 
> Signed-off-by: David Marchand <[email protected]>
> ---
>  tests/ofproto-dpif.at | 175 ++++++++++++------------------------------
>  1 file changed, 48 insertions(+), 127 deletions(-)
> 
> diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at
> index fdfa6b2a41..09bb478415 100644
> --- a/tests/ofproto-dpif.at
> +++ b/tests/ofproto-dpif.at
> @@ -5476,9 +5476,46 @@ 
> recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,fr
>  OVS_VSWITCHD_STOP
>  AT_CLEANUP
>  
> +dnl GEN_IP_FRAGS(prefix, dl_src, dl_dst, nw_src, nw_dst, tp_src, tp_dst, 
> frag_len)
> +dnl Generates 63 IP/TCP fragment in files: ${prefix}_0 to ${prefix}_62.
> +dnl IP ID is fixed (0x1234), IP checksum is not computed (0xdead).
> +m4_define([GEN_IP_FRAGS],
> +  [prefix="$1"
> +   
> flow_base="dl_src=$2,dl_dst=$3,ip,nw_src=$4,nw_dst=$5,nw_proto=6,nw_ttl=64"
> +   flow_first="${flow_base},tp_src=$6,tp_dst=$7,tcp_flags=syn,nw_frag=first"
> +   flow_later="${flow_base},,nw_frag=later"
> +   frag_len=$8
> +
> +   hdr="$(ovs-ofctl compose-packet --bare "${flow_first}")"
> +   ip_len=$(printf '%04x' $((20 + frag_len)))
> +   payload=$(printf '0%.0s' $(seq $(( (frag_len - 20) * 2 ))))
> +   echo ${hdr}${payload} dnl
> +       | sed 
> "s/^\(.\{32\}\).\{12\}\(.\{4\}\).\{4\}/\1${ip_len}12342000\2dead/" dnl
> +       > ${prefix}_0

We should try to check what we can.  In this case we could check the
echo/sed calls at least.  And we can also capture the output if we
do [stdout] + mv sequence.

nit: use \ for line continuation, modern autotest renders them properly
and it looks better than long lines with a bunch of empty spaces.

> +
> +   hdr="$(ovs-ofctl compose-packet --bare "${flow_later}")"
> +   ip_len=$(printf '%04x' $((20 + frag_len)))
> +   payload=$(printf '0%.0s' $(seq $(( frag_len * 2 ))))
> +   for i in $(seq 1 61); do
> +       frag_off=$(printf '%04x' $((0x2000 + i * frag_len / 8)))
> +       echo ${hdr}${payload} dnl
> +           | sed 
> "s/^\(.\{32\}\).\{12\}\(.\{4\}\).\{4\}/\1${ip_len}1234${frag_off}\2dead/" dnl
> +           > ${prefix}_$i
> +   done
> +
> +   ip_len=$(printf '%04x' $((40 + frag_len / 2)))
> +   payload=$(printf '0%.0s' $(seq $((frag_len + 40))))
> +   frag_off=$(printf '%04x' $((62 * frag_len / 8)))
> +   echo ${hdr}${payload} dnl
> +       | sed 
> "s/^\(.\{32\}\).\{12\}\(.\{4\}\).\{4\}/\1${ip_len}1234${frag_off}\2dead/" dnl
> +       > ${prefix}_62
> +])
> +
>  AT_SETUP([ofproto-dpif - fragment handling - reassembly])
>  OVS_VSWITCHD_START
>  add_of_ports br0 1 2 3 90
> +AT_CHECK([ovs-vsctl set Interface p90 options:ol_ip_rx_csum_set_good=true])
> +AT_CHECK([ovs-vsctl set Interface p1 options:ol_ip_rx_csum_set_good=true])
>  
>  AT_DATA([flows.txt], [dnl
>  dnl Expand flow mask.
> @@ -5549,136 +5586,20 @@ AT_CHECK([ovs-appctl dpctl/ipf-set-min-frag v4 420], 
> [], [dnl
>  setting minimum fragment size successful
>  ])
>  
> -zero107=$(printf '0%.0s' $(seq 214))
>  dnl First zone.
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e120004006423e0202020201010101000200010000000000000000500220001c7a0000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e120384006420602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12070400641ce02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e120a84006419602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e120e04006415e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e121184006412602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12150400640ee02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12188400640b602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e121c04006407e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e121f84006404602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e122304006400e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1226840063fd602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e122a040063f9e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e122d840063f6602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1231040063f2e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1234840063ef602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1238040063ebe02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e123b840063e8602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e123f040063e4e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1242840063e1602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1246040063dde02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1249840063da602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e124d040063d6e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1250840063d3602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1254040063cfe02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1257840063cc602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e125b040063c8e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e125e840063c5602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1262040063c1e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1265840063be602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1269040063bae02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e126c840063b7602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1270040063b3e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1273840063b0602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1277040063ace02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e127a840063a9602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e127e040063a5e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e1281840063a2602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12850400639ee02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12888400639b602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e128c04006397e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e128f84006394602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e129304006390e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12968400638d602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e129a04006389e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e129d84006386602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12a104006382e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12a48400637f602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12a80400637be02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12ab84006378602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12af04006374e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12b284006371602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12b60400636de02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12b98400636a602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12bd04006366e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12c084006363602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12c40400635fe02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12c78400635c602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12cb04006358e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12ce84006355602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12d204006351e02020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "1111111111112222222222220800450001d410e12d58400634e602020202010101010000000000000000000000000000000000000000${zero107}${zero107}${zero107}${zero107}"])
> -AT_CHECK([ovs-appctl netdev-dummy/receive p90 
> "11111111111122222222222208004500010810e10d904006557a0202020201010101000000000000000000000000000000000000000000000000000000000000${zero107}${zero107}"])
> +GEN_IP_FRAGS([p90], [22:22:22:22:22:22], [11:11:11:11:11:11], [2.2.2.2], 
> [1.1.1.1], [2], [1], [448])
> +
> +for i in $(seq 0 61); do
> +    ovs-appctl netdev-dummy/receive p90 "$(cat p90_$i)"

Should check these as well, and the sumilar calls below.

Best regards, Ilya Maximets.

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to