From 219bbebef2645c7d9802ec3d4f99578af8111d46 Mon Sep 17 00:00:00 2001 From: Nathan Williams Date: Fri, 30 Apr 2010 19:24:02 -0400 Subject: [PATCH] Adjust backchannel network setup to require explicit enabling on the device under test and to use a not-normally-generated interface name, so that use of add-on ethernet devices is not affected in normal operation. BUG=2962, 2941 (dup of 1810013, git goofiness) Review URL: http://codereview.chromium.org/1826003 --- mod_for_test_scripts/100setupTestingInterface | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/mod_for_test_scripts/100setupTestingInterface b/mod_for_test_scripts/100setupTestingInterface index 2712cdfce1..f5b8496115 100755 --- a/mod_for_test_scripts/100setupTestingInterface +++ b/mod_for_test_scripts/100setupTestingInterface @@ -4,54 +4,63 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -echo "Configuring for eth1 backchannel" +echo "Configuring for backchannel network device" + +testif=eth_test # Prevent connman from taking control of the backchannel network device. ORIG_CONF=${ROOT_FS_DIR}/etc/init/connman.conf TEMP_CONF=${ORIG_CONF}.tmp -sed 's/connmand -W/connmand -I eth1 -W/' ${ORIG_CONF} > ${TEMP_CONF} +sed "s/connmand -W/connmand -I ${testif} -W/" ${ORIG_CONF} > ${TEMP_CONF} mv -f ${TEMP_CONF} ${ORIG_CONF} # Arrange to run dhclient on the backchannel device but without # installing the default route, and stashing said route away for later # installation as a host route. -cat > ${ROOT_FS_DIR}/etc/udev/rules.d/50-backchannel-eth1.rules < ${ROOT_FS_DIR}/etc/udev/rules.d/50-backchannel-network.rules < ${ROOT_FS_DIR}/sbin/backchannel-setup < /dev/null 2>&1; then - orig_eth1_mac=\$(ifconfig eth1 | awk '/HWaddr/ {print \$5}') - ifconfig eth1 down # must be down for nameif to work - nameif eth_tmp \${orig_eth1_mac} + # \$1 is the current name of the backchannel device. Swap it with testif. + if ifconfig \${testif} > /dev/null 2>&1; then + orig_mac=\$(ifconfig \${testif} | awk '/HWaddr/ {print \$5}') + ifconfig \${testif} down # must be down for nameif to work + nameif eth_tmp \${orig_mac} fi bdev_mac=\$(ifconfig \$1 | awk '/HWaddr/ {print \$5}') ifconfig \$1 down # must be down for nameif to work - nameif eth1 \${bdev_mac} - if [ -n "\${orig_eth1_mac}" ]; then - nameif \$1 \${orig_eth1_mac} + nameif \${testif} \${bdev_mac} + if [ -n "\${orig_mac}" ]; then + nameif \$1 \${orig_mac} fi initctl start connman fi # Bring up the backchannel interface -dhclient -q -pf /var/run/dhclient-eth1.pid \\ - -lf /var/run/dhclient-eth1.leases \\ +dhclient -q -pf /var/run/dhclient-\${testif}.pid \\ + -lf /var/run/dhclient-\${testif}.leases \\ -cf /etc/dhclient-backchannel.conf \\ -sf /sbin/dhclient-backchannel-script \\ - eth1 + \${testif} EOF chmod +x ${ROOT_FS_DIR}/sbin/backchannel-setup