Add transport port modifications to the existing frags handling test case. This demonstrates incorrect behavior by not moving the destination port number to source port in normal mode for first fragment, as the transport port numbers have been zeroed and the move has no effect, and by allowing moves to/from transport ports on later fragments (which do not have a transport header).
Next patches fix these problems. Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com> --- tests/ofproto-dpif.at | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index 652a2a3..33cf2b0 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -3288,12 +3288,12 @@ AT_SETUP([ofproto-dpif - fragment handling]) OVS_VSWITCHD_START ADD_OF_PORTS([br0], [1], [2], [3], [4], [5], [6], [90]) AT_DATA([flows.txt], [dnl -priority=75 tcp ip_frag=no tp_dst=80 actions=output:1 -priority=75 tcp ip_frag=first tp_dst=80 actions=output:2 -priority=75 tcp ip_frag=later tp_dst=80 actions=output:3 -priority=50 tcp ip_frag=no actions=output:4 -priority=50 tcp ip_frag=first actions=output:5 -priority=50 tcp ip_frag=later actions=output:6 +priority=75 tcp ip_frag=no tp_dst=80 actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:1 +priority=75 tcp ip_frag=first tp_dst=80 actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:2 +priority=75 tcp ip_frag=later tp_dst=80 actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:3 +priority=50 tcp ip_frag=no actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:4 +priority=50 tcp ip_frag=first actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:5 +priority=50 tcp ip_frag=later actions=move:OXM_OF_TCP_DST[[]]->OXM_OF_TCP_SRC[[]],output:6 ]) AT_CHECK([ovs-ofctl replace-flows br0 flows.txt]) @@ -3322,8 +3322,14 @@ do : > expout if test $mode = drop && test $type != no; then echo 'Packets dropped because they are IP fragments and the fragment handling mode is "drop".' >> expout + echo "Datapath actions: $exp_output" >> expout + elif test $mode = normal && test $type != no; then + echo "Datapath actions: $exp_output" >> expout + elif test $mode = nx-match && test $type = later; then + echo "Datapath actions: $exp_output" >> expout + else + echo "Datapath actions: set(tcp(src=80,dst=80)),$exp_output" >> expout fi - echo "Datapath actions: $exp_output" >> expout AT_CHECK([grep 'IP fragments' stdout; tail -1 stdout], [0], [expout]) done done -- 1.7.10.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev