Merge remote-tracking branch 'origin/ovs-dev' into bsd-port
[sliver-openvswitch.git] / tests / flowgen.pl
index 4e2e5ad..2f68869 100755 (executable)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl
 
-# Copyright (c) 2009, 2010 Nicira Networks.
+# Copyright (c) 2009, 2010, 2011 Nicira, Inc.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -32,19 +32,19 @@ print PACKETS pack('NnnNNNN',
 
 output(DL_HEADER => '802.2');
 
-for my $dl_header qw(802.2+SNAP Ethernet) {
+for my $dl_header (qw(802.2+SNAP Ethernet)) {
     my %a = (DL_HEADER => $dl_header);
-    for my $dl_vlan qw(none zero nonzero) {
+    for my $dl_vlan (qw(none zero nonzero)) {
         my %b = (%a, DL_VLAN => $dl_vlan);
 
         # Non-IP case.
         output(%b, DL_TYPE => 'non-ip');
 
-        for my $ip_options qw(no yes) {
+        for my $ip_options (qw(no yes)) {
             my %c = (%b, DL_TYPE => 'ip', IP_OPTIONS => $ip_options);
-            for my $ip_fragment qw(no first middle last) {
+            for my $ip_fragment (qw(no first middle last)) {
                 my %d = (%c, IP_FRAGMENT => $ip_fragment);
-                for my $tp_proto qw(TCP TCP+options UDP ICMP other) {
+                for my $tp_proto (qw(TCP TCP+options UDP ICMP other)) {
                     output(%d, TP_PROTO => $tp_proto);
                 }
             }
@@ -98,7 +98,7 @@ sub output {
         } else {
             die;
         }
-        if ($attrs{IP_FRAGMENT} ne 'no') {
+        if ($attrs{IP_FRAGMENT} ne 'no' && $attrs{IP_FRAGMENT} ne 'first') {
             $flow{TP_SRC} = $flow{TP_DST} = 0;
         }
     } elsif ($attrs{DL_TYPE} eq 'non-ip') {
@@ -158,14 +158,14 @@ sub output {
 
             if ($attrs{TP_PROTO} =~ '^TCP') {
                 my $tcp = pack('nnNNnnnn',
-                               $flow{TP_SRC},           # source port
-                               $flow{TP_DST},           # dest port
-                               87123455,                # seqno
-                               712378912,               # ackno
+                               $flow{TP_SRC},     # source port
+                               $flow{TP_DST},     # dest port
+                               87123455,          # seqno
+                               712378912,         # ackno
                                (5 << 12) | 0x02 | 0x10, # hdrlen, SYN, ACK
                                5823,                    # window size
                                18923,                   # checksum
-                               12893);                  # urgent pointer
+                               12893); # urgent pointer
                 if ($attrs{TP_PROTO} eq 'TCP+options') {
                     substr($tcp, 12, 2) = pack('n', (6 << 12) | 0x02 | 0x10);
                     $tcp .= pack('CCn', 2, 4, 1975); # MSS option
@@ -179,17 +179,16 @@ sub output {
                 $ip .= $udp;
             } elsif ($attrs{TP_PROTO} eq 'ICMP') {
                 $ip .= pack('CCnnn',
-                            8,    # echo request
-                            0,    # code
-                            0,    # checksum
-                            736,  # identifier
-                            931); # sequence number
+                            8,        # echo request
+                            0,        # code
+                            0,        # checksum
+                            736,      # identifier
+                            931);     # sequence number
             } elsif ($attrs{TP_PROTO} eq 'other') {
                 $ip .= 'other header';
             } else {
                 die;
             }
-
             substr($ip, 2, 2) = pack('n', length($ip));
             $packet .= $ip;
         }