# SPDX-License-Identifier: GPL-2.0 # This is the standard topology for testing mirroring. The tests that use it # tweak it in one way or another--typically add more devices to the topology. # # +---------------------+ +---------------------+ # | H1 | | H2 | # | + $h1 | | $h2 + | # | | 192.0.2.1/28 | | 192.0.2.2/28 | | # +-----|---------------+ +---------------|-----+ # | | # +-----|-------------------------------------------------------------|-----+ # | SW o--> mirror | | # | +---|-------------------------------------------------------------|---+ | # | | + $swp1 BR $swp2 + | | # | +---------------------------------------------------------------------+ | # | | # | + $swp3 | # +-----|-------------------------------------------------------------------+ # | # +-----|-------------------------------------------------------------------+ # | H3 + $h3 | # | | # +-------------------------------------------------------------------------+ mirror_topo_h1_create() { simple_if_init $h1 192.0.2.1/28 } mirror_topo_h1_destroy() { simple_if_fini $h1 192.0.2.1/28 } mirror_topo_h2_create() { simple_if_init $h2 192.0.2.2/28 } mirror_topo_h2_destroy() { simple_if_fini $h2 192.0.2.2/28 } mirror_topo_h3_create() { simple_if_init $h3 tc qdisc add dev $h3 clsact } mirror_topo_h3_destroy() { tc qdisc del dev $h3 clsact simple_if_fini $h3 } mirror_topo_switch_create() { ip link set dev $swp3 up ip link add name br1 type bridge vlan_filtering 1 ip link set dev br1 up ip link set dev $swp1 master br1 ip link set dev $swp1 up ip link set dev $swp2 master br1 ip link set dev $swp2 up tc qdisc add dev $swp1 clsact } mirror_topo_switch_destroy() { tc qdisc del dev $swp1 clsact ip link set dev $swp1 down ip link set dev $swp2 down ip link del dev br1 ip link set dev $swp3 down } mirror_topo_create() { mirror_topo_h1_create mirror_topo_h2_create mirror_topo_h3_create mirror_topo_switch_create } mirror_topo_destroy() { mirror_topo_switch_destroy mirror_topo_h3_destroy mirror_topo_h2_destroy mirror_topo_h1_destroy }