Server IP : 172.67.216.182 / Your IP : 172.70.142.149 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-5.15.0-142/tools/testing/selftests/net/forwarding/ |
Upload File : |
#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # +---------------------+ +---------------------+ # | H1 | | H2 | # | + $h1 | | $h2 + | # | | 192.0.2.1/28 | | 192.0.2.2/28 | | # +-----|---------------+ +---------------|-----+ # | | # +-----|-------------------------------------------------------------|-----+ # | SW o--> mirror | | # | +---|-------------------------------------------------------------|---+ | # | | + $swp1 BR $swp2 + | | # | +---------------------------------------------------------------------+ | # | | # | +---------------------------------------------------------------------+ | # | | OL + gt6 (ip6gretap) + gt4 (gretap) | | # | | : loc=2001:db8:2::1 : loc=192.0.2.129 | | # | | : rem=2001:db8:2::2 : rem=192.0.2.130 | | # | | : ttl=100 : ttl=100 | | # | | : tos=inherit : tos=inherit | | # | +-------------------------:--|-------------------:--|-----------------+ | # | : | : | | # | +-------------------------:--|-------------------:--|-----------------+ | # | | UL : |,---------------------' | | # | | + $swp3 : || : | | # | | | 192.0.2.129/28 : vv : | | # | | | 2001:db8:2::1/64 : + ul (dummy) : | | # | +---|---------------------:----------------------:--------------------+ | # +-----|---------------------:----------------------:----------------------+ # | : : # +-----|---------------------:----------------------:----------------------+ # | H3 + $h3 + h3-gt6 (ip6gretap) + h3-gt4 (gretap) | # | 192.0.2.130/28 loc=2001:db8:2::2 loc=192.0.2.130 | # | 2001:db8:2::2/64 rem=2001:db8:2::1 rem=192.0.2.129 | # | ttl=100 ttl=100 | # | tos=inherit tos=inherit | # | | # +-------------------------------------------------------------------------+ # # This tests mirroring to gretap and ip6gretap configured in an overlay / # underlay manner, i.e. with a bound dummy device that marks underlay VRF where # the encapsulated packed should be routed. ALL_TESTS=" test_gretap test_ip6gretap " NUM_NETIFS=6 source lib.sh source mirror_lib.sh source mirror_gre_lib.sh h1_create() { simple_if_init $h1 192.0.2.1/28 } h1_destroy() { simple_if_fini $h1 192.0.2.1/28 } h2_create() { simple_if_init $h2 192.0.2.2/28 } h2_destroy() { simple_if_fini $h2 192.0.2.2/28 } h3_create() { simple_if_init $h3 192.0.2.130/28 2001:db8:2::2/64 tunnel_create h3-gt4 gretap 192.0.2.130 192.0.2.129 ip link set h3-gt4 vrf v$h3 matchall_sink_create h3-gt4 tunnel_create h3-gt6 ip6gretap 2001:db8:2::2 2001:db8:2::1 ip link set h3-gt6 vrf v$h3 matchall_sink_create h3-gt6 } h3_destroy() { tunnel_destroy h3-gt6 tunnel_destroy h3-gt4 simple_if_fini $h3 192.0.2.130/28 2001:db8:2::2/64 } switch_create() { # Bridge between H1 and H2. 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 # Underlay. simple_if_init $swp3 192.0.2.129/28 2001:db8:2::1/64 ip link add name ul type dummy ip link set dev ul master v$swp3 ip link set dev ul up # Overlay. vrf_create vrf-ol ip link set dev vrf-ol up tunnel_create gt4 gretap 192.0.2.129 192.0.2.130 \ ttl 100 tos inherit dev ul ip link set dev gt4 master vrf-ol ip link set dev gt4 up tunnel_create gt6 ip6gretap 2001:db8:2::1 2001:db8:2::2 \ ttl 100 tos inherit dev ul allow-localremote ip link set dev gt6 master vrf-ol ip link set dev gt6 up } switch_destroy() { vrf_destroy vrf-ol tunnel_destroy gt6 tunnel_destroy gt4 simple_if_fini $swp3 192.0.2.129/28 2001:db8:2::1/64 ip link del dev ul tc qdisc del dev $swp1 clsact ip link set dev $swp1 down ip link set dev $swp2 down ip link del dev br1 } setup_prepare() { h1=${NETIFS[p1]} swp1=${NETIFS[p2]} swp2=${NETIFS[p3]} h2=${NETIFS[p4]} swp3=${NETIFS[p5]} h3=${NETIFS[p6]} vrf_prepare h1_create h2_create h3_create switch_create } cleanup() { pre_cleanup switch_destroy h3_destroy h2_destroy h1_destroy vrf_cleanup } test_gretap() { full_test_span_gre_dir gt4 ingress 8 0 "mirror to gretap w/ UL" full_test_span_gre_dir gt4 egress 0 8 "mirror to gretap w/ UL" } test_ip6gretap() { full_test_span_gre_dir gt6 ingress 8 0 "mirror to ip6gretap w/ UL" full_test_span_gre_dir gt6 egress 0 8 "mirror to ip6gretap w/ UL" } test_all() { RET=0 slow_path_trap_install $swp1 ingress slow_path_trap_install $swp1 egress tests_run slow_path_trap_uninstall $swp1 egress slow_path_trap_uninstall $swp1 ingress } trap cleanup EXIT setup_prepare setup_wait tcflags="skip_hw" test_all if ! tc_offload_check; then echo "WARN: Could not test offloaded functionality" else tcflags="skip_sw" test_all fi exit $EXIT_STATUS