Files
xdp-project-bpf-examples/traffic-pacing-edt/testlab_vlan_setup.sh
Jesper Dangaard Brouer 6a67b105ee traffic-pacing-edt: Remember MTU setting on netdevices
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
2020-11-15 20:53:22 +01:00

85 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
#
# Testlab setup script for VLAN Q-in-Q (double tagged VLAN) config.
#
# Author: Jesper Dangaaard Brouer <netoptimizer@brouer.com>
# License: GPLv2
#
basedir=`dirname $0`
source ${basedir}/functions.sh
root_check_run_with_sudo "$@"
# Use common parameters
source ${basedir}/parameters.sh
export IP=/sbin/ip
function ip() {
call_ip "$@"
}
function create_vlan_device() {
local vlan=${1}
local device=${2:-$DEV}
shift 2
if [[ -z "$vlan" ]]; then
err 2 "Missing VLAN is as input"
fi
ip link add link "$device" name ${device}.${vlan} type vlan id ${vlan}
ip link set ${device}.${vlan} up
}
function create_vlan_device_802_1ad() {
local vlan=${1}
local device=${2:-$DEV}
shift 2
if [[ -z "$vlan" ]]; then
err 2 "Missing VLAN is as input"
fi
ip link add link "$device" name ${device}.${vlan} type vlan id ${vlan} \
protocol 802.1ad
ip link set ${device}.${vlan} up
}
function delete_vlan_device() {
local vlan=${1}
local device=${2:-$DEV}
shift 2
if [[ -z "$vlan" ]]; then
err 2 "Missing VLAN is as input"
fi
ip link del ${device}.${vlan}
}
if [[ -z "$1" ]]; then
err 3 "Missing arg#1 for outer vlan"
fi
OUTER=$1
if [[ -z "$2" ]]; then
err 3 "Missing arg#2 for inner vlan"
fi
INNER=$2
if [[ -n $REMOVE ]]; then
delete_vlan_device $INNER ${DEV}.${OUTER}
delete_vlan_device $OUTER $DEV
exit 0
fi
create_vlan_device $OUTER $DEV
create_vlan_device $INNER ${DEV}.${OUTER}
# Set MTU to handle extra VLAN headers, NICs usually allow one VLAN
# header even though they have configured MTU 1500.
ip link set $DEV mtu 1508
ip link set ${DEV}.${OUTER} mtu 1504