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);
