From 27488f5773cf80e587e0337291a2cee9e6d1c8e1 Mon Sep 17 00:00:00 2001 From: "tgoff0@gmail.com" Date: Fri, 22 May 2015 00:55:20 +0000 Subject: [PATCH] Prefer using ip instead of ifconfig. Includes other minor improvements. --- .../examples/netns/iperf-performance.sh | 34 +++++++++++-------- trunk/daemon/examples/netns/twonodes.sh | 10 +++--- trunk/daemon/sbin/core-cleanup | 2 +- trunk/doc/devguide.rst | 10 +++--- trunk/doc/usage.rst | 2 +- 5 files changed, 33 insertions(+), 25 deletions(-) diff --git a/trunk/daemon/examples/netns/iperf-performance.sh b/trunk/daemon/examples/netns/iperf-performance.sh index cd0f5c16..0301c508 100755 --- a/trunk/daemon/examples/netns/iperf-performance.sh +++ b/trunk/daemon/examples/netns/iperf-performance.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/sh -e # # iperf-performance.sh # @@ -20,7 +20,7 @@ STAMP=`date +%Y%m%d%H%M%S` # client---(loopback)---server # loopbacktest () { - killall iperf 2> /dev/null + killall iperf 2> /dev/null || true echo ">> loopback iperf test" echo "loopback" > ${LOG} @@ -61,14 +61,16 @@ lxcvethtest () { echo "starting lxc iperf server" vnoded -l $SERVER.log -p $SERVER.pid -c $SERVER ip link add name veth0.1 type veth peer name veth0 - ip link set veth0 netns `cat $SERVER.pid` - vcmd -c $SERVER -- ifconfig veth0 $SERVERIP/24 + ip link set veth0 netns `cat $SERVER.pid` up + vcmd -c $SERVER -- ip link set lo up + vcmd -c $SERVER -- ip addr add $SERVERIP/24 dev veth0 vcmd -c $SERVER -- iperf -s -y c >> ${LOG} & echo "starting lxc iperf client" vnoded -l $CLIENT.log -p $CLIENT.pid -c $CLIENT - ip link set veth0.1 netns `cat $CLIENT.pid` - vcmd -c $CLIENT -- ifconfig veth0.1 $CLIENTIP/24 + ip link set veth0.1 netns `cat $CLIENT.pid` up + vcmd -c $CLIENT -- ip link set lo up + vcmd -c $CLIENT -- ip addr add $CLIENTIP/24 dev veth0.1 i=1 while [ $i -le $NUMRUNS ]; do @@ -112,8 +114,9 @@ lxcbrtest () { echo "starting lxc iperf server" vnoded -l $SERVER.log -p $SERVER.pid -c $SERVER ip link add name veth0.1 type veth peer name veth0 - ip link set veth0 netns `cat $SERVER.pid` - vcmd -c $SERVER -- ifconfig veth0 $SERVERIP/24 + ip link set veth0 netns `cat $SERVER.pid` up + vcmd -c $SERVER -- ip link set lo up + vcmd -c $SERVER -- ip addr add $SERVERIP/24 dev veth0 brctl addif $BRIDGE veth0.1 ip link set veth0.1 up vcmd -c $SERVER -- iperf -s -y c >> ${LOG} & @@ -121,8 +124,9 @@ lxcbrtest () { echo "starting lxc iperf client" vnoded -l $CLIENT.log -p $CLIENT.pid -c $CLIENT ip link add name veth1.1 type veth peer name veth1 - ip link set veth1 netns `cat $CLIENT.pid` - vcmd -c $CLIENT -- ifconfig veth1 $CLIENTIP/24 + ip link set veth1 netns `cat $CLIENT.pid` up + vcmd -c $CLIENT -- ip link set lo up + vcmd -c $CLIENT -- ip addr add $CLIENTIP/24 dev veth1 brctl addif $BRIDGE veth1.1 ip link set veth1.1 up @@ -216,8 +220,9 @@ clientstest () { echo "starting lxc iperf server" vnoded -l $SERVER.log -p $SERVER.pid -c $SERVER ip link add name veth0.1 type veth peer name veth0 - ip link set veth0 netns `cat $SERVER.pid` - vcmd -c $SERVER -- ifconfig veth0 $SERVERIP/24 + ip link set veth0 netns `cat $SERVER.pid` up + vcmd -c $SERVER -- ip link set lo up + vcmd -c $SERVER -- ip addr add $SERVERIP/24 dev veth0 brctl addif $BRIDGE veth0.1 ip link set veth0.1 up vcmd -c $SERVER -- iperf -s -y c >> ${LOG} & @@ -230,8 +235,9 @@ clientstest () { CLIENTIP=10.0.0.1$i vnoded -l $CLIENT.log -p $CLIENT.pid -c $CLIENT ip link add name veth1.$i type veth peer name veth1 - ip link set veth1 netns `cat $CLIENT.pid` - vcmd -c $CLIENT -- ifconfig veth1 $CLIENTIP/24 + ip link set veth1 netns `cat $CLIENT.pid` up + vcmd -c $CLIENT -- ip link set lo up + vcmd -c $CLIENT -- ip addr add $CLIENTIP/24 dev veth1 brctl addif $BRIDGE veth1.$i ip link set veth1.$i up i=$((i+1)) diff --git a/trunk/daemon/examples/netns/twonodes.sh b/trunk/daemon/examples/netns/twonodes.sh index 88034051..0593ef08 100755 --- a/trunk/daemon/examples/netns/twonodes.sh +++ b/trunk/daemon/examples/netns/twonodes.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/sh -e # Below is a transcript of creating two emulated nodes and connecting them # together with a wired link. You can run the core-cleanup script to clean # up after this script. @@ -8,16 +8,16 @@ vnoded -c /tmp/n1.ctl -l /tmp/n1.log -p /tmp/n1.pid # create a virtual Ethernet (veth) pair, installing one end into node 1 ip link add name n1.0.1 type veth peer name n1.0 ip link set n1.0 netns `cat /tmp/n1.pid` -vcmd -c /tmp/n1.ctl -- ip link set n1.0 name eth0 -vcmd -c /tmp/n1.ctl -- ifconfig eth0 10.0.0.1/24 +vcmd -c /tmp/n1.ctl -- /bin/sh -e -c \ + "ip link set lo up && ip link set n1.0 name eth0 up && ip addr add 10.0.0.1/24 dev eth0" # create node 2 namespace container vnoded -c /tmp/n2.ctl -l /tmp/n2.log -p /tmp/n2.pid # create a virtual Ethernet (veth) pair, installing one end into node 2 ip link add name n2.0.1 type veth peer name n2.0 ip link set n2.0 netns `cat /tmp/n2.pid` -vcmd -c /tmp/n2.ctl -- ip link set n2.0 name eth0 -vcmd -c /tmp/n2.ctl -- ifconfig eth0 10.0.0.2/24 +vcmd -c /tmp/n2.ctl -- /bin/sh -e -c \ + "ip link set lo up && ip link set n2.0 name eth0 up && ip addr add 10.0.0.2/24 dev eth0" # bridge together nodes 1 and 2 using the other end of each veth pair brctl addbr b.1.1 diff --git a/trunk/daemon/sbin/core-cleanup b/trunk/daemon/sbin/core-cleanup index 0eace227..239ee62e 100755 --- a/trunk/daemon/sbin/core-cleanup +++ b/trunk/daemon/sbin/core-cleanup @@ -47,7 +47,7 @@ killall -q emaneeventservice if [ -d /sys/class/net ]; then ifcommand="ls -1 /sys/class/net" else - ifcommand="ifconfig -a" + ifcommand="ip -o link show | sed -r -e 's/[0-9]+: ([^[:space:]]+): .*/\1/'" fi eval "$ifcommand" | awk ' diff --git a/trunk/doc/devguide.rst b/trunk/doc/devguide.rst index 2da93e01..e2f83e98 100644 --- a/trunk/doc/devguide.rst +++ b/trunk/doc/devguide.rst @@ -153,16 +153,18 @@ Below is a transcript of creating two emulated nodes and connecting them togethe # create a virtual Ethernet (veth) pair, installing one end into node 1 ip link add name n1.0.1 type veth peer name n1.0 ip link set n1.0 netns `cat /tmp/n1.pid` - vcmd -c /tmp/n1.ctl -- ip link set n1.0 name eth0 - vcmd -c /tmp/n1.ctl -- ifconfig eth0 10.0.0.1/24 + vcmd -c /tmp/n1.ctl -- ip link set lo up + vcmd -c /tmp/n1.ctl -- ip link set n1.0 name eth0 up + vcmd -c /tmp/n1.ctl -- ip addr add 10.0.0.1/24 dev eth0 # create node 2 namespace container vnoded -c /tmp/n2.ctl -l /tmp/n2.log -p /tmp/n2.pid # create a virtual Ethernet (veth) pair, installing one end into node 2 ip link add name n2.0.1 type veth peer name n2.0 ip link set n2.0 netns `cat /tmp/n2.pid` - vcmd -c /tmp/n2.ctl -- ip link set n2.0 name eth0 - vcmd -c /tmp/n2.ctl -- ifconfig eth0 10.0.0.2/24 + vcmd -c /tmp/n2.ctl -- ip link set lo up + vcmd -c /tmp/n2.ctl -- ip link set n2.0 name eth0 up + vcmd -c /tmp/n2.ctl -- ip addr add 10.0.0.2/24 eth0 # bridge together nodes 1 and 2 using the other end of each veth pair brctl addbr b.1.1 diff --git a/trunk/doc/usage.rst b/trunk/doc/usage.rst index 352ba54a..af134800 100644 --- a/trunk/doc/usage.rst +++ b/trunk/doc/usage.rst @@ -1127,7 +1127,7 @@ session, configure an address on the host. sudo brctl show # determine bridge name from the above command # assign an IP address on the same network as the linked node - sudo ifconfig b.48304.34658 10.0.1.2/24 + sudo ip addr add 10.0.1.2/24 dev b.48304.34658 In the example shown above, the host will have the address ``10.0.1.2`` and the node linked to the RJ45 may have the address ``10.0.1.1``.