cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mirror_topo_lib.sh (2758B)


      1# SPDX-License-Identifier: GPL-2.0
      2
      3# This is the standard topology for testing mirroring. The tests that use it
      4# tweak it in one way or another--typically add more devices to the topology.
      5#
      6#   +---------------------+                             +---------------------+
      7#   | H1                  |                             |                  H2 |
      8#   |     + $h1           |                             |           $h2 +     |
      9#   |     | 192.0.2.1/28  |                             |  192.0.2.2/28 |     |
     10#   +-----|---------------+                             +---------------|-----+
     11#         |                                                             |
     12#   +-----|-------------------------------------------------------------|-----+
     13#   | SW  o--> mirror                                                   |     |
     14#   | +---|-------------------------------------------------------------|---+ |
     15#   | |   + $swp1                    BR                           $swp2 +   | |
     16#   | +---------------------------------------------------------------------+ |
     17#   |                                                                         |
     18#   |     + $swp3                                                             |
     19#   +-----|-------------------------------------------------------------------+
     20#         |
     21#   +-----|-------------------------------------------------------------------+
     22#   | H3  + $h3                                                               |
     23#   |                                                                         |
     24#   +-------------------------------------------------------------------------+
     25
     26mirror_topo_h1_create()
     27{
     28	simple_if_init $h1 192.0.2.1/28
     29}
     30
     31mirror_topo_h1_destroy()
     32{
     33	simple_if_fini $h1 192.0.2.1/28
     34}
     35
     36mirror_topo_h2_create()
     37{
     38	simple_if_init $h2 192.0.2.2/28
     39}
     40
     41mirror_topo_h2_destroy()
     42{
     43	simple_if_fini $h2 192.0.2.2/28
     44}
     45
     46mirror_topo_h3_create()
     47{
     48	simple_if_init $h3
     49	tc qdisc add dev $h3 clsact
     50}
     51
     52mirror_topo_h3_destroy()
     53{
     54	tc qdisc del dev $h3 clsact
     55	simple_if_fini $h3
     56}
     57
     58mirror_topo_switch_create()
     59{
     60	ip link set dev $swp3 up
     61
     62	ip link add name br1 type bridge vlan_filtering 1
     63	ip link set dev br1 up
     64
     65	ip link set dev $swp1 master br1
     66	ip link set dev $swp1 up
     67
     68	ip link set dev $swp2 master br1
     69	ip link set dev $swp2 up
     70
     71	tc qdisc add dev $swp1 clsact
     72}
     73
     74mirror_topo_switch_destroy()
     75{
     76	tc qdisc del dev $swp1 clsact
     77
     78	ip link set dev $swp1 down
     79	ip link set dev $swp2 down
     80	ip link del dev br1
     81
     82	ip link set dev $swp3 down
     83}
     84
     85mirror_topo_create()
     86{
     87	mirror_topo_h1_create
     88	mirror_topo_h2_create
     89	mirror_topo_h3_create
     90
     91	mirror_topo_switch_create
     92}
     93
     94mirror_topo_destroy()
     95{
     96	mirror_topo_switch_destroy
     97
     98	mirror_topo_h3_destroy
     99	mirror_topo_h2_destroy
    100	mirror_topo_h1_destroy
    101}