Reverting to 2 switch topo and adding traffic gen script
Change-Id: Ie6da61bb393290762f3a794f450ae798e9cff552
diff --git a/tools/test/tests/tofino-traffic-demo.lua b/tools/test/tests/tofino-traffic-demo.lua
new file mode 100644
index 0000000..c5a3ec1
--- /dev/null
+++ b/tools/test/tests/tofino-traffic-demo.lua
@@ -0,0 +1,106 @@
+package.path = package.path ..";?.lua;test/?.lua;app/?.lua;"
+
+-- Demo for Tofino/ONOS at Layer 123
+
+pktgen.screen("off");
+pktgen.pause("Starting traffic generator...\n", 1000);
+
+-- 'set' commands for a number of per port values
+pktgen.set("all", "count", 0);
+pktgen.set("all", "rate", 100);
+pktgen.set("all", "size", 1518);
+pktgen.set("all", "burst", 64);
+pktgen.set("all", "sport", 1234);
+pktgen.set("all", "dport", 5678);
+pktgen.set("all", "prime", 1);
+pktgen.set("all", "seq_cnt", 1);
+
+pktgen.set_type("all", "ipv4");
+pktgen.set_proto("all", "udp");
+
+pktgen.set_ipaddr("0", "dst", "10.0.0.2");
+pktgen.set_ipaddr("0", "src", "10.0.0.1/8");
+pktgen.set_ipaddr("1", "dst", "10.0.0.1");
+pktgen.set_ipaddr("1", "src", "10.0.0.2/8");
+
+-- Wait for links to come up
+
+printf("\nInitializing links ");
+up = false
+for i=1,5 do
+ -- this does not seem to be reliably updated between runs
+ s = pktgen.linkState("all");
+ if s["n"] == 2 and s[0] ~= "<--Down-->" and s[1] ~= "<--Down-->" then
+ up = true
+ break
+ end
+ printf(".");
+ pktgen.delay(2000);
+end
+if up then
+ printf(" SUCCESS!\n");
+else
+ printf(" Continuing...\n");
+end
+pktgen.linkState("all");
+pktgen.delay(3000);
+
+
+-- Send gratuitous arps
+
+printf("Sending gratuitous ARPs for host discovery...", i);
+for i=1,10 do
+ pktgen.send_arp("all", "g");
+ pktgen.delay(100);
+end
+pktgen.delay(2000);
+printf(" DONE\n");
+
+-- Initialize the traffic using range command
+pktgen.pause("Initializing traffic...\n", 2000);
+
+pktgen.page("range");
+pktgen.src_ip("0", "start", "10.1.0.1");
+pktgen.src_ip("0", "min", "10.1.0.0");
+pktgen.src_ip("0", "max", "10.1.255.255");
+pktgen.src_ip("0", "inc", "0.0.1.0");
+
+pktgen.dst_ip("0", "start", "10.0.0.2");
+pktgen.dst_ip("0", "min", "10.0.0.2");
+pktgen.dst_ip("0", "max", "10.0.0.2");
+pktgen.dst_ip("0", "inc", "0.0.0.0");
+
+pktgen.src_ip("1", "start", "10.2.0.1");
+pktgen.src_ip("1", "min", "10.2.0.0");
+pktgen.src_ip("1", "max", "10.2.255.255");
+pktgen.src_ip("1", "inc", "0.0.1.0");
+
+pktgen.dst_ip("1", "start", "10.0.0.1");
+pktgen.dst_ip("1", "min", "10.0.0.1");
+pktgen.dst_ip("1", "max", "10.0.0.1");
+pktgen.dst_ip("1", "inc", "0.0.0.0");
+
+pktgen.dst_port("all", "start", 1234);
+pktgen.dst_port("all", "inc", 4);
+pktgen.dst_port("all", "min", 1234);
+pktgen.dst_port("all", "max", 2345);
+
+pktgen.src_port("all", "start", 5678);
+pktgen.src_port("all", "inc", 5);
+pktgen.src_port("all", "min", 1234);
+pktgen.src_port("all", "max", 9999);
+
+pktgen.pkt_size("all", "start", 1518);
+pktgen.pkt_size("all", "min", 1518);
+pktgen.pkt_size("all", "max", 1518);
+pktgen.pkt_size("all", "inc", 0);
+
+pktgen.delay(2000);
+
+pktgen.page("0");
+pktgen.set_range("all", "on");
+pktgen.screen("on");
+
+-- Start traffic
+pktgen.pause("Starting traffic...\n", 1000);
+pktgen.start(0);