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
