summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLisa Hsu <hsul@eecs.umich.edu>2004-11-16 22:43:12 -0500
committerLisa Hsu <hsul@eecs.umich.edu>2004-11-16 22:43:12 -0500
commit182425da82976a7bddcd259e8b56fed348c52eab (patch)
treef5aa45d3e733efcde4680726c7d51cb323085202
parent33135a051abcaad29bd04118e9d7028f7529b4a5 (diff)
downloadgem5-182425da82976a7bddcd259e8b56fed348c52eab.tar.xz
add support for NAT under netperf stream, maerts, and spec-surge.
configs/boot/spec-surge-client.rcS: configs/boot/surge-client.rcS: fix this rcS - don't sleep, instead wait for the server to tell you it's done. configs/boot/spec-surge-server.rcS: configs/boot/surge-server.rcS: notify the client you're done starting the server. --HG-- extra : convert_revision : b708bd0a9147e248eed7c27e7078668fbd98b95e
-rw-r--r--configs/boot/nat-netperf-maerts-client.rcS48
-rw-r--r--configs/boot/nat-netperf-server.rcS30
-rw-r--r--configs/boot/nat-netperf-stream-client.rcS48
-rw-r--r--configs/boot/nat-spec-surge-client.rcS51
-rwxr-xr-xconfigs/boot/nat-spec-surge-server.rcS56
-rw-r--r--configs/boot/natbox-netperf.rcS51
-rw-r--r--configs/boot/natbox-spec-surge.rcS51
-rw-r--r--configs/boot/spec-surge-client.rcS5
-rwxr-xr-xconfigs/boot/spec-surge-server.rcS4
-rwxr-xr-xconfigs/boot/surge-client.rcS5
-rwxr-xr-xconfigs/boot/surge-server.rcS3
11 files changed, 346 insertions, 6 deletions
diff --git a/configs/boot/nat-netperf-maerts-client.rcS b/configs/boot/nat-netperf-maerts-client.rcS
new file mode 100644
index 000000000..24d7c2ca1
--- /dev/null
+++ b/configs/boot/nat-netperf-maerts-client.rcS
@@ -0,0 +1,48 @@
+#!/bin/sh
+SERVER=192.168.0.1
+CLIENT=10.0.0.2
+
+echo "setting up network..."
+ifconfig lo 127.0.0.1
+ifconfig eth0 $CLIENT txqueuelen 1000
+
+echo "modifying route table..."
+route add default gw 10.0.0.1
+
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_mem
+echo "262143" > /proc/sys/net/core/rmem_max
+echo "262143" > /proc/sys/net/core/wmem_max
+echo "262143" > /proc/sys/net/core/rmem_default
+echo "262143" > /proc/sys/net/core/wmem_default
+echo "262143" > /proc/sys/net/core/optmem_max
+echo "100000" > /proc/sys/net/core/netdev_max_backlog
+
+echo -n "waiting for server..."
+/usr/bin/netcat -c -l -p 8000
+
+BINARY=/benchmarks/netperf/netperf
+TEST="TCP_MAERTS"
+SHORT_ARGS="-l -100k"
+LONG_ARGS="-k16384,0 -K16384,0 -- -m 65536 -M 65536 -s 262144 -S 262144"
+
+
+SHORT="$BINARY -H $SERVER -t $TEST $SHORT_ARGS"
+LONG="$BINARY -H $SERVER -t $TEST $LONG_ARGS"
+
+echo "starting test..."
+echo "netperf warmup"
+echo $SHORT
+eval $SHORT
+
+echo "netperf benchmark"
+echo $LONG
+/sbin/m5 ivlb 1
+/sbin/m5 resetstats
+/sbin/m5 dumpresetstats 2000000000 2000000000
+/sbin/m5 checkpoint 2000000000 2000000000
+eval $LONG
+/sbin/m5 exit
diff --git a/configs/boot/nat-netperf-server.rcS b/configs/boot/nat-netperf-server.rcS
new file mode 100644
index 000000000..c0646b61c
--- /dev/null
+++ b/configs/boot/nat-netperf-server.rcS
@@ -0,0 +1,30 @@
+#!/bin/sh
+SERVER=192.168.0.1
+CLIENT=10.0.0.2
+NATBOX=192.168.0.2
+
+echo "setting up network..."
+ifconfig lo 127.0.0.1
+ifconfig eth0 $SERVER txqueuelen 1000
+
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_mem
+echo "262143" > /proc/sys/net/core/rmem_max
+echo "262143" > /proc/sys/net/core/wmem_max
+echo "262143" > /proc/sys/net/core/rmem_default
+echo "262143" > /proc/sys/net/core/wmem_default
+echo "262143" > /proc/sys/net/core/optmem_max
+echo "100000" > /proc/sys/net/core/netdev_max_backlog
+
+echo "running netserver..."
+/benchmarks/netperf/netserver
+
+echo -n "signal client to begin..."
+echo "server ready" | /usr/bin/netcat -c $NATBOX 8000
+echo "done."
+
+echo "starting bash..."
+exec /bin/bash
diff --git a/configs/boot/nat-netperf-stream-client.rcS b/configs/boot/nat-netperf-stream-client.rcS
new file mode 100644
index 000000000..9e29378c8
--- /dev/null
+++ b/configs/boot/nat-netperf-stream-client.rcS
@@ -0,0 +1,48 @@
+#!/bin/sh
+SERVER=192.168.0.1
+CLIENT=10.0.0.2
+
+echo "setting up network..."
+ifconfig lo 127.0.0.1
+ifconfig eth0 $CLIENT txqueuelen 1000
+
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_mem
+echo "262143" > /proc/sys/net/core/rmem_max
+echo "262143" > /proc/sys/net/core/wmem_max
+echo "262143" > /proc/sys/net/core/rmem_default
+echo "262143" > /proc/sys/net/core/wmem_default
+echo "262143" > /proc/sys/net/core/optmem_max
+echo "100000" > /proc/sys/net/core/netdev_max_backlog
+
+echo "modifying route table"
+route add default gw 10.0.0.1
+
+echo -n "waiting for server..."
+/usr/bin/netcat -c -l -p 8000
+
+BINARY=/benchmarks/netperf/netperf
+TEST="TCP_STREAM"
+SHORT_ARGS="-l -100k"
+LONG_ARGS="-k16384,0 -K16384,0 -- -m 65536 -M 65536 -s 262144 -S 262144"
+
+
+SHORT="$BINARY -H $SERVER -t $TEST $SHORT_ARGS"
+LONG="$BINARY -H $SERVER -t $TEST $LONG_ARGS"
+
+echo "starting test..."
+echo "netperf warmup"
+echo $SHORT
+eval $SHORT
+
+echo "netperf benchmark"
+echo $LONG
+/sbin/m5 ivlb 1
+/sbin/m5 resetstats
+/sbin/m5 dumpresetstats 2000000000 2000000000
+/sbin/m5 checkpoint 2000000000 2000000000
+eval $LONG
+/sbin/m5 exit
diff --git a/configs/boot/nat-spec-surge-client.rcS b/configs/boot/nat-spec-surge-client.rcS
new file mode 100644
index 000000000..39e3e5070
--- /dev/null
+++ b/configs/boot/nat-spec-surge-client.rcS
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# /etc/init.d/rcS
+#
+CLIENT=10.0.0.2
+SERVER=192.168.0.1
+
+echo -n "mounting swap..."
+/sbin/swapon /dev/hdc1
+echo "done."
+
+echo -n "setting up network..."
+/sbin/ifconfig eth0 $CLIENT txqueuelen 1000
+/sbin/ifconfig lo 127.0.0.1
+
+echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
+echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
+echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "15" > /proc/sys/net/ipv4/tcp_fin_timeout
+echo "16384" > /proc/sys/net/ipv4/tcp_max_syn_backlog
+
+echo "1024 65535" > /proc/sys/net/ipv4/ip_local_port_range
+echo "10000000 10000000 10000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "10000000 10000000 10000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "10000000 10000000 10000000" > /proc/sys/net/ipv4/tcp_mem
+
+echo "524287" > /proc/sys/net/core/rmem_max
+echo "524287" > /proc/sys/net/core/wmem_max
+echo "524287" > /proc/sys/net/core/optmem_max
+echo "300000" > /proc/sys/net/core/netdev_max_backlog
+
+echo "131072" > /proc/sys/fs/file-max
+echo "done."
+
+echo "changing route table..."
+route add default gw 10.0.0.1
+
+echo "waiting for server..."
+/usr/bin/netcat -c -l -p 8000
+
+echo -n "running surge client..."
+/bin/bash -c "cd /benchmarks/surge && ./spec-m5 1 20 1 $SERVER 5 40000 1000000000 1000"
+echo "done."
+
+echo -n "halting machine"
+m5 exit
+
+echo -n "starting bash shell..."
+/bin/bash
diff --git a/configs/boot/nat-spec-surge-server.rcS b/configs/boot/nat-spec-surge-server.rcS
new file mode 100755
index 000000000..39eb5bee0
--- /dev/null
+++ b/configs/boot/nat-spec-surge-server.rcS
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# /etc/init.d/rcS
+#
+NATBOX=192.168.0.7
+
+echo -n "mounting swap..."
+/sbin/swapon /dev/hdc1
+echo "done."
+
+echo -n "setting up network..."
+/sbin/ifconfig eth0 192.168.0.1 txqueuelen 1000
+/sbin/ifconfig eth0:1 192.168.0.2 txqueuelen 1000
+/sbin/ifconfig eth0:2 192.168.0.3 txqueuelen 1000
+/sbin/ifconfig eth0:3 192.168.0.4 txqueuelen 1000
+/sbin/ifconfig eth0:4 192.168.0.5 txqueuelen 1000
+/sbin/ifconfig lo 127.0.0.1
+
+echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
+echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
+echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "15" > /proc/sys/net/ipv4/tcp_fin_timeout
+echo "16384" > /proc/sys/net/ipv4/tcp_max_syn_backlog
+
+echo "1024 65535" > /proc/sys/net/ipv4/ip_local_port_range
+echo "10000000 10000000 10000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "10000000 10000000 10000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "10000000 10000000 10000000" > /proc/sys/net/ipv4/tcp_mem
+
+echo "524287" > /proc/sys/net/core/rmem_max
+echo "524287" > /proc/sys/net/core/wmem_max
+echo "524287" > /proc/sys/net/core/optmem_max
+echo "300000" > /proc/sys/net/core/netdev_max_backlog
+
+echo "131072" > /proc/sys/fs/file-max
+echo "done."
+
+echo -n "mounting file set..."
+mkdir -p /z/htdocs
+mount /dev/hdb1 /z/htdocs
+echo "done."
+
+echo -n "starting httpd..."
+/benchmarks/apache2/bin/apachectl start
+sleep 2
+cat /benchmarks/apache2/logs/error_log
+echo "done."
+
+echo "notifying natbox..."
+echo "server ready" | /usr/bin/netcat -c $NATBOX 8000
+echo "done"
+
+echo -n "starting bash shell..."
+/bin/bash
diff --git a/configs/boot/natbox-netperf.rcS b/configs/boot/natbox-netperf.rcS
new file mode 100644
index 000000000..d665670fe
--- /dev/null
+++ b/configs/boot/natbox-netperf.rcS
@@ -0,0 +1,51 @@
+#!/bin/sh
+EXTIF=192.168.0.2
+INTIF=10.0.0.1
+CLIENT=10.0.0.2
+
+echo "setting up network..."
+ifconfig lo 127.0.0.1
+ifconfig eth0 $EXTIF txqueuelen 1000
+ifconfig eth1 $INTIF txqueuelen 1000
+
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_mem
+echo "262143" > /proc/sys/net/core/rmem_max
+echo "262143" > /proc/sys/net/core/wmem_max
+echo "262143" > /proc/sys/net/core/rmem_default
+echo "262143" > /proc/sys/net/core/wmem_default
+echo "262143" > /proc/sys/net/core/optmem_max
+echo "100000" > /proc/sys/net/core/netdev_max_backlog
+
+echo "1" > /proc/sys/net/ipv4/ip_forward
+
+echo "waiting for netserver..."
+/usr/bin/netcat -c -l -p 8000
+
+echo "setting up iptables..."
+IPTABLES=/sbin/iptables
+EXTIF=eth0
+INTIF=eth1
+
+$IPTABLES -P INPUT ACCEPT
+$IPTABLES -F INPUT
+$IPTABLES -P OUTPUT ACCEPT
+$IPTABLES -F OUTPUT
+$IPTABLES -P FORWARD DROP
+$IPTABLES -F FORWARD
+$IPTABLES -t nat -F
+
+$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
+$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
+$IPTABLES -A FORWARD -j LOG
+
+$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
+
+echo "informing client..."
+echo "server ready" | /usr/bin/netcat -c $CLIENT 8000
+
+echo "starting bash..."
+exec /bin/bash
diff --git a/configs/boot/natbox-spec-surge.rcS b/configs/boot/natbox-spec-surge.rcS
new file mode 100644
index 000000000..ed74b71bd
--- /dev/null
+++ b/configs/boot/natbox-spec-surge.rcS
@@ -0,0 +1,51 @@
+#!/bin/sh
+EXTIF=192.168.0.7
+INTIF=10.0.0.1
+CLIENT=10.0.0.2
+
+echo "setting up network..."
+ifconfig lo 127.0.0.1
+ifconfig eth0 $EXTIF txqueuelen 1000
+ifconfig eth1 $INTIF txqueuelen 1000
+
+echo "0" > /proc/sys/net/ipv4/tcp_timestamps
+echo "0" > /proc/sys/net/ipv4/tcp_sack
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_rmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_wmem
+echo "5000000 5000000 5000000" > /proc/sys/net/ipv4/tcp_mem
+echo "262143" > /proc/sys/net/core/rmem_max
+echo "262143" > /proc/sys/net/core/wmem_max
+echo "262143" > /proc/sys/net/core/rmem_default
+echo "262143" > /proc/sys/net/core/wmem_default
+echo "262143" > /proc/sys/net/core/optmem_max
+echo "100000" > /proc/sys/net/core/netdev_max_backlog
+
+echo "1" > /proc/sys/net/ipv4/ip_forward
+
+echo "waiting for netserver..."
+/usr/bin/netcat -c -l -p 8000
+
+echo "setting up iptables..."
+IPTABLES=/sbin/iptables
+EXTIF=eth0
+INTIF=eth1
+
+$IPTABLES -P INPUT ACCEPT
+$IPTABLES -F INPUT
+$IPTABLES -P OUTPUT ACCEPT
+$IPTABLES -F OUTPUT
+$IPTABLES -P FORWARD DROP
+$IPTABLES -F FORWARD
+$IPTABLES -t nat -F
+
+$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
+$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
+$IPTABLES -A FORWARD -j LOG
+
+$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
+
+echo "informing client..."
+echo "server ready" | /usr/bin/netcat -c $CLIENT 8000
+
+echo "starting bash..."
+exec /bin/bash
diff --git a/configs/boot/spec-surge-client.rcS b/configs/boot/spec-surge-client.rcS
index d02241a3e..b7a2a12e4 100644
--- a/configs/boot/spec-surge-client.rcS
+++ b/configs/boot/spec-surge-client.rcS
@@ -32,9 +32,8 @@ echo "300000" > /proc/sys/net/core/netdev_max_backlog
echo "131072" > /proc/sys/fs/file-max
echo "done."
-echo -n "sleeping until server is running..."
-sleep 3
-echo "done."
+echo "waiting for server..."
+/usr/bin/netcat -c -l -p 8000
echo -n "running surge client..."
/bin/bash -c "cd /benchmarks/surge && ./spec-m5 1 20 1 192.168.0.1 5 40000 1000000000 1000"
diff --git a/configs/boot/spec-surge-server.rcS b/configs/boot/spec-surge-server.rcS
index b7e5d73c0..61afd78bf 100755
--- a/configs/boot/spec-surge-server.rcS
+++ b/configs/boot/spec-surge-server.rcS
@@ -47,5 +47,9 @@ sleep 2
cat /benchmarks/apache2/logs/error_log
echo "done."
+echo "notifying client..."
+echo "server ready" | /usr/bin/netcat -c 192.168.0.10 8000
+echo "done"
+
echo -n "starting bash shell..."
/bin/bash
diff --git a/configs/boot/surge-client.rcS b/configs/boot/surge-client.rcS
index 1213082f3..f41c13882 100755
--- a/configs/boot/surge-client.rcS
+++ b/configs/boot/surge-client.rcS
@@ -32,9 +32,8 @@ echo "300000" > /proc/sys/net/core/netdev_max_backlog
echo "131072" > /proc/sys/fs/file-max
echo "done."
-echo -n "sleeping until server is running..."
-sleep 3
-echo "done."
+echo "waiting for server..."
+/usr/bin/netcat -c -l -p 8000
echo -n "running surge client..."
/bin/bash -c "cd /benchmarks/surge && ./Surge 2 100 1 192.168.0.1 5"
diff --git a/configs/boot/surge-server.rcS b/configs/boot/surge-server.rcS
index 28e626120..75642c259 100755
--- a/configs/boot/surge-server.rcS
+++ b/configs/boot/surge-server.rcS
@@ -3,6 +3,7 @@
# /etc/init.d/rcS
#
+
echo -n "mounting swap..."
/sbin/swapon /dev/hdc1
echo "done."
@@ -47,5 +48,7 @@ sleep 2
cat /benchmarks/apache2/logs/error_log
echo "done."
+echo "server ready" | /usr/bin/netcat -c 192.168.10 8000
+
echo -n "starting bash shell..."
/bin/bash