diff --git a/tests/run_switch.py b/tests/run_switch.py
new file mode 100755
index 0000000..d7d5f6b
--- /dev/null
+++ b/tests/run_switch.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+#
+# Create veth pairs and start up switch daemons
+#
+
+import os
+from subprocess import Popen,PIPE,call,check_call
+from optparse import OptionParser
+
+parser = OptionParser(version="%prog 0.1")
+parser.set_defaults(port_count=4)
+parser.set_defaults(of_dir="../../openflow")
+parser.set_defaults(port=6633)
+parser.add_option("-n", "--port_count", type="int",
+                  help="Number of veth pairs to create")
+parser.add_option("-o", "--of_dir", help="OpenFlow root directory for host")
+parser.add_option("-p", "--port", type="int",
+                  help="Port for OFP to listen on")
+(options, args) = parser.parse_args()
+
+call(["/sbin/modprobe", "veth"])
+for idx in range(0, options.port_count):
+    print "Creating veth pair " + str(idx)
+    call(["/sbin/ip", "link", "add", "type", "veth"])
+
+for idx in range(0, 2 * options.port_count):
+    cmd = ["/sbin/ifconfig", 
+           "veth" + str(idx), 
+           "192.168.1" + str(idx) + ".1", 
+           "netmask", 
+           "255.255.255.0"]
+    print "Cmd: " + str(cmd)
+    call(cmd)
+
+veths = "veth0"
+for idx in range(1, options.port_count):
+    veths += ",veth" + str(2 * idx)
+
+ofd = options.of_dir + "/udatapath/ofdatapath"
+ofp = options.of_dir + "/secchan/ofprotocol"
+
+try:
+    check_call(["ls", ofd])
+except:
+    print "Could not find datapath daemon: " + ofd
+    os.exit(1)
+
+try:
+    check_call(["ls", ofp])
+except:
+    print "Could not find protocol daemon: " + ofp
+    os.exit(1)
+
+ofd_op = Popen([ofd, "-i", veths, "punix:/tmp/ofd"])
+print "Started ofdatapath on IFs " + veths + " with pid " + str(ofd_op.pid)
+
+print "Starting ofprotocol; ^C to quit"
+call([ofp, "unix:/tmp/ofd", "tcp:127.0.0.1:" + str(options.port),
+      "--fail=closed", "--max-backoff=1"])
+
+ofd_op.kill()
+
+
+
+
+
