| #!/bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| # |
| # Regression tests for the SO_TXTIME interface |
| |
| # Run in network namespace |
| if [[ $# -eq 0 ]]; then |
| if ! ./in_netns.sh $0 __subprocess; then |
| # test is time sensitive, can be flaky |
| echo "test failed: retry once" |
| ./in_netns.sh $0 __subprocess |
| fi |
| |
| exit $? |
| fi |
| |
| set -e |
| |
| tc qdisc add dev lo root fq |
| ./so_txtime -4 -6 -c mono a,-1 a,-1 |
| ./so_txtime -4 -6 -c mono a,0 a,0 |
| ./so_txtime -4 -6 -c mono a,10 a,10 |
| ./so_txtime -4 -6 -c mono a,10,b,20 a,10,b,20 |
| ./so_txtime -4 -6 -c mono a,20,b,10 b,20,a,20 |
| |
| if tc qdisc replace dev lo root etf clockid CLOCK_TAI delta 400000; then |
| ! ./so_txtime -4 -6 -c tai a,-1 a,-1 |
| ! ./so_txtime -4 -6 -c tai a,0 a,0 |
| ./so_txtime -4 -6 -c tai a,10 a,10 |
| ./so_txtime -4 -6 -c tai a,10,b,20 a,10,b,20 |
| ./so_txtime -4 -6 -c tai a,20,b,10 b,10,a,20 |
| else |
| echo "tc ($(tc -V)) does not support qdisc etf. skipping" |
| fi |
| |
| echo OK. All tests passed |