Add two more tests that use traffic that was captured with tcpdump.
authorreyk <reyk@openbsd.org>
Tue, 19 Jul 2016 17:19:58 +0000 (17:19 +0000)
committerreyk <reyk@openbsd.org>
Tue, 19 Jul 2016 17:19:58 +0000 (17:19 +0000)
These files serve as an example, no more .pcap files should be added here
(especially not large ones).

regress/usr.sbin/switchd/args-http.pcap [new file with mode: 0644]
regress/usr.sbin/switchd/args-http.pm [new file with mode: 0644]
regress/usr.sbin/switchd/args-icmp.pcap [new file with mode: 0644]
regress/usr.sbin/switchd/args-icmp.pm [new file with mode: 0644]

diff --git a/regress/usr.sbin/switchd/args-http.pcap b/regress/usr.sbin/switchd/args-http.pcap
new file mode 100644 (file)
index 0000000..0938907
Binary files /dev/null and b/regress/usr.sbin/switchd/args-http.pcap differ
diff --git a/regress/usr.sbin/switchd/args-http.pm b/regress/usr.sbin/switchd/args-http.pm
new file mode 100644 (file)
index 0000000..c312b25
--- /dev/null
@@ -0,0 +1,63 @@
+# $OpenBSD: args-http.pm,v 1.1 2016/07/19 17:19:58 reyk Exp $
+
+# Copyright (c) 2016 Reyk Floeter <reyk@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+package args_http;
+
+use strict;
+use warnings;
+use base qw(Exporter);
+our @EXPORT = qw(init next);
+
+my $topology = {
+       hosts => {
+               "6c8814709208" => {
+                       "port" => 8
+               },
+               "3431c4778157" => {
+                       "port" => 24
+               }
+       }
+};
+
+sub init {
+       my $class = shift;
+       my $sock = shift;
+       my $self = { "count" => 0, "pcap" => "args-http.pcap",
+           "sock" => $sock, "version" => main::OFP_V_1_0() };
+
+       bless($self, $class);
+
+       main::ofp_hello($self);
+
+       return ($self);
+}
+
+sub next {
+       my $class = shift;
+       my $self = shift;
+       my $src;
+
+       $self->{count}++;
+
+       $src = $topology->{hosts}->{$self->{eh}->{src_mac}};
+       if ($src) {
+               $self->{port} = $src->{port};
+       }
+
+       main::ofp_packet_in($self, $self->{data});
+}
+
+1;
diff --git a/regress/usr.sbin/switchd/args-icmp.pcap b/regress/usr.sbin/switchd/args-icmp.pcap
new file mode 100644 (file)
index 0000000..6da899c
Binary files /dev/null and b/regress/usr.sbin/switchd/args-icmp.pcap differ
diff --git a/regress/usr.sbin/switchd/args-icmp.pm b/regress/usr.sbin/switchd/args-icmp.pm
new file mode 100644 (file)
index 0000000..1acca73
--- /dev/null
@@ -0,0 +1,47 @@
+# $OpenBSD: args-icmp.pm,v 1.1 2016/07/19 17:19:58 reyk Exp $
+
+# Copyright (c) 2016 Reyk Floeter <reyk@openbsd.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+package args_icmp;
+
+use strict;
+use warnings;
+use base qw(Exporter);
+our @EXPORT = qw(init next);
+
+sub init {
+       my $class = shift;
+       my $sock = shift;
+       my $self = { "count" => 0, "pcap" => "args-icmp.pcap",
+           "sock" => $sock, "version" => main::OFP_V_1_0() };
+
+       bless($self, $class);
+
+       main::ofp_hello($self);
+
+       return ($self);
+}
+
+sub next {
+       my $class = shift;
+       my $self = shift;
+
+       $self->{count}++;
+       $self->{port} = $self->{count} % 2;
+
+       main::ofp_packet_in($self, $self->{data});
+}
+
+1;