poky/scripts/runqemu-ifdown
Richard Purdie 609fc15718 runqemu/qemu-helper: Drop tunctl
ip tuntap provides the functionality that we obtained from tunctl. We only
needed tunctl when ifconfig was more available than ip. That isn't the case
now so we can drop tunctl and all the hoops we need to jump through to build
and provide it.

(From OE-Core rev: 2abfbca690ff00cb58ce08a65cde006578ee3de9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-16 15:40:11 +01:00

1.5 KiB
Executable File

#!/bin/bash

QEMU network configuration script to bring down tap devices. This

utility needs to be run as root, and will use the ip utility

If you find yourself calling this script a lot, you can add the

the following to your /etc/sudoers file to be able to run this

command without entering your password each time:

ALL=NOPASSWD: /path/to/runqemu-ifup

ALL=NOPASSWD: /path/to/runqemu-ifdown

Copyright (c) 2006-2011 Linux Foundation

SPDX-License-Identifier: GPL-2.0-only

usage() { echo "sudo $(basename $0) " }

if [ $EUID -ne 0 ]; then echo "Error: This script (runqemu-ifdown) must be run with root privileges" exit 1 fi

if [ $# -ne 2 ]; then usage exit 1 fi

TAP=$1 STAGING_BINDIR_NATIVE=$2

if !ip tuntap del $TAP mode tap 2>/dev/null; then echo "Error: Unable to run up tuntap del" exit 1 fi

IFCONFIG=which ip 2> /dev/null if [ "x$IFCONFIG" = "x" ]; then # better than nothing... IFCONFIG=/sbin/ip fi if [ -x "$IFCONFIG" ]; then if $IFCONFIG link show $TAP > /dev/null 2>&1; then $IFCONFIG link del $TAP fi fi

cleanup the remaining iptables rules

IPTABLES=which iptables 2> /dev/null if [ "x$IPTABLES" = "x" ]; then IPTABLES=/sbin/iptables fi if [ ! -x "$IPTABLES" ]; then echo "$IPTABLES cannot be executed" exit 1 fi n=$[ (echo $TAP | sed 's/tap//' * 2) + 1 ] dest=$[ (echo $TAP | sed 's/tap//' * 2) + 2 ] $IPTABLES -D POSTROUTING -t nat -j MASQUERADE -s 192.168.7.$n/32 $IPTABLES -D POSTROUTING -t nat -j MASQUERADE -s 192.168.7.$dest/32 true