#!/bin/bash # lag switch, run with no arg to add lag, run with an arg to restore IFACE=enp3s0f1 DELAYIN=900ms LOSSIN=1% DELAYOUT=900ms LOSSOUT=1% if [ "$1" != "" ]; then # lag switch off # out tc qdisc del dev "${IFACE}" root # in tc qdisc del dev "ifb-${IFACE}" root tc qdisc del dev "${IFACE}" handle ffff: ingress ip link set "ifb-${IFACE}" down ip link del "ifb-${IFACE}" modprobe -r ifb else # lag switch on # out tc qdisc add dev "${IFACE}" root netem delay "${DELAYOUT}" loss "${LOSSOUT}" 25% # in modprobe ifb ip link add "ifb-${IFACE}" type ifb ip link set dev "ifb-${IFACE}" up tc qdisc add dev "${IFACE}" ingress tc filter add dev "${IFACE}" parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev "ifb-${IFACE}" tc qdisc add dev "ifb-${IFACE}" root netem delay "${DELAYIN}" loss "${LOSSIN}" 25% fi