Compare commits

..

113 commits

Author SHA1 Message Date
Andrea Claudi
e2fb4f8067 iproute-6.17.0-1.f44
* Wed Oct 08 2025 Andrea Claudi <aclaudi@redhat.com> - 6.17.0-1.f44
- New version 6.17.0 (Andrea Claudi) [2400133]
- Create /etc/iproute2 for user configuration files (Andrea Claudi) [2343990]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2025-10-08 00:31:40 +02:00
Yaakov Selkowitz
6deb8d6715 Import README.etc 2025-09-19 04:00:55 -04:00
Andrea Claudi
5659df63b3 iproute-6.16.0-1.f44
* Wed Sep 03 2025 Andrea Claudi <aclaudi@redhat.com> - 6.16.0-1.f44
- New version 6.16.0 (Andrea Claudi) [2368627]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2025-09-03 17:33:08 +02:00
Fedora Release Engineering
50f9619fb0 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 17:45:38 +00:00
Andrea Claudi
b5c2466bc3 iproute-6.14.0-1.f43
* Mon May 05 2025 Andrea Claudi <aclaudi@redhat.com> - 6.14.0-1.f43
- New version 6.14.0 (Andrea Claudi) [2339037]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2025-05-05 16:14:12 +02:00
Fedora Release Engineering
9fefd19efe Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-17 07:21:19 +00:00
Zbigniew Jędrzejewski-Szmek
7e1077b3ac Rebuilt for the bin-sbin merge (2nd attempt)
https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin
2025-01-12 14:31:21 +01:00
Andrea Claudi
052577f9e9 iproute-6.12.0-1.f42
* Wed Nov 27 2024 Andrea Claudi <aclaudi@redhat.com> - 6.12.0-1.f42
- New version 6.12.0 (Andrea Claudi) [2298392]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2024-11-27 16:48:48 +01:00
Andrea Claudi
d10e375a52 iproute-6.10.0-1.f41
* Tue Jul 23 2024 Andrea Claudi <aclaudi@redhat.com> - 6.10.0-1.f41
- New version 6.10.0 (Andrea Claudi) [2298392]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2024-07-23 17:04:22 +02:00
Fedora Release Engineering
4a0051fa00 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 10:32:53 +00:00
Zbigniew Jędrzejewski-Szmek
88661651e0 Add compat sbin Provides
For https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin.
A few packages require /usr/sbin/{ip,ss}.
2024-07-09 13:21:25 +02:00
Yaakov Selkowitz
1110672bf6 Import rt_dsfield.deprecated for ELN builds
Without Source1 being present, this cannot build when bootstrapping a new
RHEL version (as happened in 10) without manual intervention, which is
completely avoidable here.
2024-06-23 22:54:28 -04:00
Yaakov Selkowitz
741bac7f44 Fix flatpak build
config.mk does not set PREFIX, therefore DATADIR does not set
properly either.
2024-04-16 00:16:12 -04:00
Andrea Claudi
02154c54ad iproute-6.8.0-1.f41
* Tue Mar 12 2024 Andrea Claudi <aclaudi@redhat.com> - 6.8.0-1.f41
- New version 6.8.0 (Andrea Claudi) [2269034]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2024-03-12 13:23:51 +01:00
Andrea Claudi
f8ce705323 iproute-6.7.0-1.f40
* Fri Feb 09 2024 Andrea Claudi <aclaudi@redhat.com> - 6.7.0-1.f40
- New version 6.7.0 (Andrea Claudi) [2247875]
- Fix FTBFS on ppc64le (Andrea Claudi) [2261250]
- Remove libdb-devel dependency from iproute [1788538]
- Enable color output by default [2239120]
Resolves: rhbz#2247875, rhbz#2261250, rhbz#1788538, #rhbz2239120

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2024-02-10 00:16:01 +01:00
Fedora Release Engineering
ff66d681df Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 22:53:27 +00:00
Fedora Release Engineering
8760a89e54 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-20 23:14:40 +00:00
Andrea Claudi
d7b1054f52 iproute-6.5.0-1.f40
* Wed Sep 20 2023 Andrea Claudi <aclaudi@redhat.com> - 6.5.0-1.f40
- New version 6.5.0 (Andrea Claudi) [2237746]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2023-09-20 16:21:46 +02:00
Fedora Release Engineering
b4ab73fd79 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 07:34:48 +00:00
Andrea Claudi
05c1d08d5d iproute-6.4.0-1.f39
* Tue Jun 27 2023 Andrea Claudi <aclaudi@redhat.com> - 6.4.0-1.f39
- New version 6.4.0 (Andrea Claudi) [2217550]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2023-06-27 11:24:06 +02:00
Andrea Claudi
7d1d584693 iproute-6.3.0-1.f39
* Sun Apr 30 2023 Andrea Claudi <aclaudi@redhat.com> - 6.3.0-1.f39
- New version 6.3.0 (Andrea Claudi) [2192181]
Resolves: rhbz#2192181

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2023-04-30 10:56:21 +02:00
Andrea Claudi
cbbae567ba iproute-6.2.0-1.f39
* Wed Apr 26 2023 Andrea Claudi <aclaudi@redhat.com> - 6.2.0-1.f39
- Adopt SPDX license ids
- Use rpmautospec machinery
- New version 6.2.0 (Andrea Claudi) [2171899]

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2023-04-26 11:43:32 +02:00
Yaakov Selkowitz
1a364a9120 Fix flatpak build 2023-02-20 10:48:11 -05:00
Andrea Claudi
e2a8a76a86 iproute-6.1.0-1
* Fri Jan 27 2023 Andrea Claudi <aclaudi@redhat.com> - 6.1.0-1
- New version 6.1.0 [2114514]
Resolves: rhbz#2114514

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2023-01-27 20:11:50 +01:00
Fedora Release Engineering
a833ccb56d Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 13:18:39 +00:00
Jiri Olsa
3b389914ec libbpf 1.0 support
Extra release for libbpf 1.0 build.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
2022-11-28 08:31:42 +01:00
Andrea Claudi
35ccaf5271 iproute-6.0.0-1
* Thu Oct 06 2022 Andrea Claudi <aclaudi@redhat.com> - 6.0.0-1
- New version 6.0.0 [2114514]
- Fix some trailing whitespaces in iproute.spec
- Also fix eln build (wrongly including SOURCE1 file)
Resolves: rhbz#2114514

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2022-10-06 16:19:22 +02:00
Fedora Release Engineering
c48c29082d Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 14:48:38 +00:00
Andrea Claudi
9b3f8a94d6 iproute-5.18.0-1
* Tue Jun 14 2022 Andrea Claudi <aclaudi@redhat.com> - 5.18.0-1
- New version 5.18.0 [2090930]
Resolves: rhbz#2090930

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2022-06-15 01:04:40 +02:00
Andrea Claudi
59e7b4ef2f iproute-5.17.0-2
* Wed Mar 30 2022 Andrea Claudi <aclaudi@redhat.com> - 5.17.0-2
- iproute.spec: do not ship routel (Andrea Claudi) [2068118]
Resolves: rhbz#2068118

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2022-03-30 18:11:16 +02:00
Andrea Claudi
93abbcde57 iproute-5.17.0-1
* Wed Mar 23 2022 Andrea Claudi <aclaudi@redhat.com> - 5.17.0-1
- New version 5.17.0 [2039103]
Resolves: rhbz#2039103

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2022-03-23 15:46:09 +01:00
Fedora Release Engineering
bc9be1bd5b - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 13:24:55 +00:00
Andrea Claudi
dfbb7f212c iproute-5.15.0-1
* Thu Nov 04 2021 Andrea Claudi <aclaudi@redhat.com> - 5.15.0-1
- New version 5.15.0 [2019267]
Resolves: rhbz#2019267

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2021-11-04 18:52:27 +01:00
Andrea Claudi
665ce7375f iproute-5.14.0-1
* Wed Oct 20 2021 Andrea Claudi <aclaudi@redhat.com> - 5.14.0-1
- New version 5.14.0 [1999860]
Resolves: rhbz#1999860

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2021-10-20 14:51:03 +02:00
Fedora Release Engineering
477162c605 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 08:41:51 +00:00
Andrea Claudi
89005f26e9 Rebase package on top of iproute2-5.13.0
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2021-06-30 13:18:11 +02:00
Andrea Claudi
c193bd78b0 Rebase package on top of iproute2-5.12.0
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2021-04-27 21:49:35 +02:00
Andrea Claudi
50c05074a3 Rebase package on top of iproute2-5.11.0
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2021-02-26 18:13:05 +01:00
Robert Scheck
e100ed01fc Spec file cleanup 2021-02-26 18:05:13 +01:00
Fedora Release Engineering
9440bece43 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 14:27:39 +00:00
Tom Stellard
d90e533c29 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-05 06:19:41 +00:00
Andrea Claudi
49aaa709ec Rebase package on top of iproute2-5.10.0
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2020-12-21 21:23:08 +01:00
Andrea Claudi
32597caac4 Rebase package on top of iproute2-5.9.0
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2020-12-04 14:36:58 +01:00
Andrea Claudi
26cbcf8539 Add Provides: iproute-doc
This fix an rpmlint warning caused by Obsoletes: iproute-doc without
any package providing it.

Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2020-12-04 14:05:40 +01:00
Andrea Claudi
6e849e5270 Fix rpmlint warn unversioned-explicit-provides on tc
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2020-12-02 20:30:07 +01:00
Andrea Claudi
495711a13b Use rpm configure/build/install rpm macros
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
2020-12-02 20:25:07 +01:00
Phil Sutter
3e3e60bdb8 Rebase package on top of iproute2-5.8.0 2020-08-10 12:35:26 +02:00
Fedora Release Engineering
fc0b49e928 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-28 01:55:14 +00:00
Phil Sutter
415ca14088 Rebase package on top of iproute2-5.7.0 2020-06-04 13:03:44 +02:00
Phil Sutter
ba82a86837 Rebase package on top of iproute2-5.5.0 2020-01-28 11:08:54 +01:00
Phil Sutter
51429ab2bf Rebase package on top of iproute2-5.4.0 2019-11-26 17:27:08 +01:00
Phil Sutter
26d638db91 iproute-5.3.0-2
- ifcfg script uses killall, therefore requires psmisc package
2019-10-08 13:51:27 +02:00
Ondřej Lysoněk
e919693bef Add a dependency on psmisc
The ifcfg script uses killall, provided by the psmisc package.
2019-10-08 12:32:08 +02:00
Phil Sutter
34a4fc8582 Rebase package on top of iproute2-5.3.0 2019-09-26 10:00:14 +02:00
Fedora Release Engineering
40ec840b2d - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 09:39:27 +00:00
Phil Sutter
0e7954e5ce Rebase package on top of iproute2-5.2.0 2019-07-23 18:02:51 +02:00
Phil Sutter
deafa1de44 Rebase package on top of iproute2-5.1.0 2019-05-29 15:31:42 +02:00
Phil Sutter
c40aafdb36 Restore Provides: /sbin/ip
In Rawhide, packages pptp and resource-agents still use it.
2019-03-20 14:07:57 +01:00
Phil Sutter
5a8ceeb824 Rebase package on top of iproute2-5.0.0 2019-03-20 08:59:19 +01:00
Phil Sutter
ae59d604a2 Rebase package on top of iproute2-4.20.0 2019-02-01 11:14:04 +01:00
Phil Sutter
e213879f21 Rebase package on top of iproute2-4.20.0 2019-02-01 08:52:52 +01:00
Fedora Release Engineering
9a0f298de7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-01 03:29:46 +00:00
Igor Gnatenko
85b3e0591e Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:08 +01:00
Phil Sutter
1b3b4aee09 man: ip-route: Clarify referenced versions are Linux ones 2018-09-19 20:06:59 +02:00
Phil Sutter
3ce5d0a3bf iprule: Fix destination prefix output 2018-08-31 11:52:03 +02:00
Phil Sutter
941d2e148b Make colored output configurable 2018-08-23 17:58:43 +02:00
Phil Sutter
81eb9cb3c9 Fix ss filter expressions 2018-08-16 13:31:29 +02:00
Phil Sutter
a3ce5bfd28 Rebase package on top of iproute2-4.18.0 2018-08-14 20:07:04 +02:00
Susant Sahani
1418f9951a CI: Add ip neighbour to test
sample run
```

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 17:23:10 ] :: [   LOG    ] :: ip neighbor tests
:: [ 17:23:10 ] :: [   LOG    ] :: ip neighbor tests
:: [ 17:23:10 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-neighbor-tests.py'
test_add_neighbor (__main__.IPNeighborTests) ... 192.168.100.1 lladdr 00:c0:7b:7d:00:c8 PERMANENT
ok
test_replace_neighbor (__main__.IPNeighborTests) ... 192.168.99.254 lladdr 00:80:c8:27:69:2d PERMANENT
192.168.99.254 lladdr 00:80:c8:27:69:2d PERMANENT
ok
----------------------------------------------------------------------
Ran 2 tests in 0.053s

OK
:: [ 17:23:10 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-neighbor-tests.py' (Expected 0, got 0)
:: [ 17:23:10 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-neighbor-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Duration: 0s
::   Assertions: 1 good, 0 bad
::   Assertions: 1 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::   Cleanup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
```
2018-08-02 17:24:20 +05:30
Susant Sahani
90c1f77538 CI: Add ip route to test
Sample run

'''
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 18:23:29 ] :: [   LOG    ] :: ip route tests
:: [ 18:23:29 ] :: [   LOG    ] :: ip route tests
:: [ 18:23:29 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-route-tests.py'
test_add_blackhole (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600
10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50
10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50
blackhole 192.168.1.0/24
192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600
192.168.225.1 dev wlp4s0 proto static scope link metric 600
209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600
192.168.225.1 dev wlp4s0 proto static scope link metric 600
209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600
ok
test_add_prohibit (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600
10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50
10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50
prohibit 192.168.1.0/24
192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600
192.168.225.1 dev wlp4s0 proto static scope link metric 600
209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600
ok
test_add_route (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600
10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50
10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50
192.168.1.0/24 dev dummy-test scope link
192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600
192.168.225.1 dev wlp4s0 proto static scope link metric 600
209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600
ok
test_add_route_table (__main__.IPRouteTests) ... 192.168.1.0/24 dev dummy-test scope link
ok
test_add_throw (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600
10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50
10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50
throw 192.168.1.0/24
192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600
192.168.225.1 dev wlp4s0 proto static scope link metric 600
209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600
ok
test_add_unreachable (__main__.IPRouteTests) ... default via 192.168.225.1 dev wlp4s0 proto dhcp metric 600
10.0.0.0/8 via 10.67.116.1 dev tun0 proto static metric 50
10.67.116.0/22 dev tun0 proto kernel scope link src 10.67.117.15 metric 50
unreachable 192.168.1.0/24
192.168.225.0/24 dev wlp4s0 proto kernel scope link src 192.168.225.101 metric 600
192.168.225.1 dev wlp4s0 proto static scope link metric 600
209.132.188.220 via 192.168.225.1 dev wlp4s0 proto static metric 600
ok

----------------------------------------------------------------------
Ran 6 tests in 0.155s

OK
:: [ 18:23:29 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-route-tests.py' (Expected 0, got 0)
:: [ 18:23:29 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-route-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Duration: 1s
::   Assertions: 1 good, 0 bad
::   Assertions: 1 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::   Cleanup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

'''
2018-07-31 18:22:25 +05:30
Susant Sahani
0b5c720c9c CI: Add netns to test
Sample run:
```

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 15:37:14 ] :: [   LOG    ] :: ip netns tests
:: [ 15:37:14 ] :: [   LOG    ] :: ip netns tests
:: [ 15:37:14 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-netns-tests.py'
test_add_dummy_interface_to_ns (__main__.IPNsTests) ... 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
3: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
4: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1446 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
4: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1446 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/tunnel6 :: brd ::
6: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre6 :: brd ::
7: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
8: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
9: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
143: dummy-test: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 6e:d1:ba:73:59:c5 brd ff:ff:ff:ff:ff:ff
ok
test_add_ns (__main__.IPNsTests) ... ok
test_add_veth_interface_to_ns (__main__.IPNsTests) ... 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
3: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
4: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1446 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/tunnel6 :: brd ::
6: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre6 :: brd ::
7: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
8: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
9: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
144: test-peer@if145: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 62:ce:d1:9f:bc:de brd ff:ff:ff:ff:ff:ff link-netnsid 0
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
3: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
4: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1446 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
5: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd ::
6: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1000
    link/gre6 :: brd ::
7: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
8: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
9: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
144: test-peer@if145: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 62:ce:d1:9f:bc:de brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.200.1.2/24 scope global test-peer
       valid_lft forever preferred_lft forever
    inet6 fe80::60ce:d1ff:fe9f:bcde/64 scope link tentative
       valid_lft forever preferred_lft forever
PING 10.200.1.1 (10.200.1.1) 56(84) bytes of data.
64 bytes from 10.200.1.1: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 10.200.1.1: icmp_seq=2 ttl=64 time=0.042 ms
64 bytes from 10.200.1.1: icmp_seq=3 ttl=64 time=0.054 ms
64 bytes from 10.200.1.1: icmp_seq=4 ttl=64 time=0.059 ms
64 bytes from 10.200.1.1: icmp_seq=5 ttl=64 time=0.064 ms

--- 10.200.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4073ms
rtt min/avg/max/mdev = 0.042/0.056/0.064/0.010 ms
ok

----------------------------------------------------------------------
Ran 3 tests in 4.431s

Ran 3 tests in 4.431s

OK
:: [ 15:37:18 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-netns-tests.py' (Expected 0, got 0)
:: [ 15:37:18 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-netns-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 4s
::   Duration: 4s
::   Assertions: 1 good, 0 bad
::   Assertions: 1 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::   Cleanup

```
2018-07-31 15:36:29 +05:30
Susant Sahani
e3e7ca1187 CI: Add l2tp to test
Sample run

```
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 15:21:16 ] :: [   LOG    ] :: ip l2tp tests
:: [ 15:21:16 ] :: [   LOG    ] :: ip l2tp tests
:: [ 15:21:16 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-l2tp-tests.py'
test_add_l2tp_add_tunnel (__main__.IPL2tpTests) ... Tunnel 3000, encap UDP
  From 192.168.11.12 to 192.168.11.13
  Peer tunnel 4000
  UDP source / dest ports: 5000/6000
  UDP checksum: disabled
ok
test_add_l2tp_add_tunnel_session (__main__.IPL2tpTests) ... Tunnel 3000, encap UDP
  From 192.168.11.12 to 192.168.11.13
  Peer tunnel 4000
  UDP source / dest ports: 5000/6000
  UDP checksum: disabled
Session 1000 in tunnel 3000
  Peer session 2000, tunnel 4000
  interface name: l2tpeth0
  offset 0, peer offset 0
ok
test_setup_l2tp (__main__.IPL2tpTests) ... Tunnel 3000, encap UDP
  From 192.168.11.12 to 192.168.11.13
  Peer tunnel 4000
  UDP source / dest ports: 5000/6000
  UDP checksum: disabled
Session 1000 in tunnel 3000
  Peer session 2000, tunnel 4000
  interface name: l2tpeth0
  offset 0, peer offset 0
Tunnel 4000, encap UDP
  From 192.168.11.13 to 192.168.11.12
  Peer tunnel 3000
  UDP source / dest ports: 6000/5000
  UDP checksum: disabled
Tunnel 3000, encap UDP
  From 192.168.11.12 to 192.168.11.13
  Peer tunnel 4000
  UDP source / dest ports: 5000/6000
  UDP checksum: disabled
Session 2000 in tunnel 4000
  Peer session 1000, tunnel 3000
  interface name: l2tpeth1
  offset 0, peer offset 0
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 8c:16:45:6c:83:b9 brd ff:ff:ff:ff:ff:ff
3: wlp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 7c:76:35:ea:89:90 brd ff:ff:ff:ff:ff:ff
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1360 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100
    link/none
92: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
93: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
94: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1446 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
100: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/tunnel6 :: brd ::
101: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/gre6 :: brd ::
104: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
117: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
126: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
168: test-peer@veth-test: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 96:03:08:d2:65:40 brd ff:ff:ff:ff:ff:ff
169: veth-test@test-peer: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether c2:8c:3b:9f:ea:32 brd ff:ff:ff:ff:ff:ff
170: l2tpeth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1488 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 76:41:ec:b9:d2:75 brd ff:ff:ff:ff:ff:ff
171: l2tpeth1: <BROADCAST,MULTICAST> mtu 65481 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 8e:7f:ab:21:a2:ea brd ff:ff:ff:ff:ff:ff
PING 10.42.1.2 (10.42.1.2) 56(84) bytes of data.
64 bytes from 10.42.1.2: icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from 10.42.1.2: icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from 10.42.1.2: icmp_seq=3 ttl=64 time=0.066 ms
64 bytes from 10.42.1.2: icmp_seq=4 ttl=64 time=0.045 ms
64 bytes from 10.42.1.2: icmp_seq=5 ttl=64 time=0.041 ms
--- 10.42.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4126ms
rtt min/avg/max/mdev = 0.013/0.041/0.066/0.018 ms
ok

----------------------------------------------------------------------
Ran 3 tests in 4.322s

OK
:: [ 15:21:21 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-l2tp-tests.py' (Expected 0, got 0)
:: [ 15:21:21 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-l2tp-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 5s
::   Duration: 5s
::   Assertions: 1 good, 0 bad
::   Assertions: 1 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS

```
2018-07-30 15:22:04 +05:30
Susant Sahani
73cd43c0ee CI: Add ip tunnel to test
Sample run
```
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 17:39:52 ] :: [   LOG    ] :: ip tunnel tests
:: [ 17:39:52 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-tunnel-tests.py'
test_add_gre (__main__.IPTunnelTests) ... sit0: ipv6/ip remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
gre0: gre/ip remote any local any ttl inherit nopmtudisc
tunl0: any/ip remote any local any ttl inherit nopmtudisc
gretun-test: gre/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64
ok
test_add_ipip (__main__.IPTunnelTests) ... sit0: ipv6/ip remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
gre0: gre/ip remote any local any ttl inherit nopmtudisc
tunl0: any/ip remote any local any ttl inherit nopmtudisc
ipiptun-test: ip/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64
ok
test_add_isatap (__main__.IPTunnelTests) ... sit0: ipv6/ip remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
gre0: gre/ip remote any local any ttl inherit nopmtudisc
tunl0: any/ip remote any local any ttl inherit nopmtudisc
isatap-test: ipv6/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64 6rd-prefix 2002::/16
ok
test_add_sit (__main__.IPTunnelTests) ... sit0: ipv6/ip remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
gre0: gre/ip remote any local any ttl inherit nopmtudisc
tunl0: any/ip remote any local any ttl inherit nopmtudisc
sittun-test: ipv6/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64 6rd-prefix 2002::/16
ok
test_add_vti (__main__.IPTunnelTests) ... sit0: ipv6/ip remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
gre0: gre/ip remote any local any ttl inherit nopmtudisc
tunl0: any/ip remote any local any ttl inherit nopmtudisc
vti-test: ipv6/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64 6rd-prefix 2002::/16
ok

----------------------------------------------------------------------
Ran 5 tests in 0.197s

OK

```
2018-07-24 19:10:47 +05:30
Susant Sahani
5c4250bd81 CI: Add tuntap to test
Sample run

```

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 17:14:21 ] :: [   LOG    ] :: ip tuntap tests
:: [ 17:14:21 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-tuntap-tests.py'
test_add_tap (__main__.IPTuntapTests) ... fopen /sys/class/net/ip6gre0/tun_flags: No such file or directory
fopen /sys/class/net/wlan0/tun_flags: No such file or directory
ok

ok
test_add_tun_user_group (__main__.IPTuntapTests) ... fopen /sys/class/net/ip6gre0/tun_flags: No such file or directory
ok

----------------------------------------------------------------------
Ran 3 tests in 0.049s

OK
:: [ 17:14:21 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-tuntap-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Assertions: 1 good, 0 bad
::   RESULT: PASS

```
2018-07-24 17:14:59 +05:30
Susant Sahani
1abbe5eb83 CI: Add ip token to test
Sample Run
```
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Setup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

iproute-4.16.0-1.fc28.x86_64
:: [ 16:55:06 ] :: [   PASS   ] :: Checking for the presence of iproute rpm
:: [ 16:55:06 ] :: [   LOG    ] :: Package versions:
:: [ 16:55:06 ] :: [   LOG    ] ::   iproute-4.16.0-1.fc28.x86_64
:: [ 16:55:06 ] :: [  BEGIN   ] :: Running 'cp ip-token-tests.py /usr/bin'
:: [ 16:55:06 ] :: [   PASS   ] :: Command 'cp ip-token-tests.py /usr/bin' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Assertions: 2 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:55:07 ] :: [   LOG    ] :: ip token tests
:: [ 16:55:07 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-token-tests.py'
test_add_token (__main__.IPTokenTests) ... token ::1a:2b:3c:4d dev veth-test
ok

----------------------------------------------------------------------
Ran 1 test in 0.029s

OK
:: [ 16:55:07 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-token-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Assertions: 1 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

```
2018-07-24 16:56:27 +05:30
Susant Sahani
d4c9cc3ea7 CI: Add FOU to test.
Sample run
```
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 21:17:51 ] :: [   LOG    ] :: ip fou tests
:: [ 21:17:51 ] :: [   LOG    ] :: ip fou tests
:: [ 21:17:51 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-fou-tests.py'
test_configure_fou_receive_port_gre (__main__.IPFOUTests)
Configure a FOU receive port for GRE bound to 7777 ... port 7777 ipproto 47
ok
test_configure_fou_receive_port_gue (__main__.IPFOUTests)
Configure a GUE receive port bound to 9999 ... port 9999 gue
ok
test_configure_fou_receive_port_ipip (__main__.IPFOUTests)
Configure a FOU receive port for IPIP bound to 8888 ... port 8888 ipproto 4
ok
test_configure_fou_with_ipip (__main__.IPFOUTests)
IP over UDP tunnel ... port 9000 ipproto 4
ok

----------------------------------------------------------------------
Ran 4 tests in 0.048s

OK
```
2018-07-24 16:48:01 +05:30
Susant Sahani
fd68e09fe1 CI: Add ip addrlabel to test
Sample Run

```
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 17:56:55 ] :: [   LOG    ] :: ip address label tests
:: [ 17:56:55 ] :: [   LOG    ] :: ip address label tests
:: [ 17:56:55 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-address-label-tests.py'
test_add_address_label (__main__.IPAddressLabelTests) ... prefix ::1/128 label 0
prefix ::/96 label 3
prefix ::ffff:0.0.0.0/96 label 4
prefix 2001:6f8:12d8:2::/64 dev if14 label 200
prefix 2001:6f8:900:8cbc::/64 dev if14 label 300
prefix 2001:4dd0:ff00:834::/64 dev if14 label 200
prefix 2a01:238:423d:8800::/64 dev if14 label 300
prefix 2001:4dd0:ff00:834::/64 dev if14 label 200
prefix 2a01:238:423d:8800::/64 dev if14 label 300
prefix 2a01:238:423d:8800::/64 label 300
prefix 2001:4dd0:ff00:834::/64 label 200
prefix 2001:6f8:900:8cbc::/64 label 300
prefix 2001:6f8:12d8:2::/64 label 200
prefix 2001::/32 label 6
prefix 2001:10::/28 label 7
prefix 3ffe::/16 label 12
prefix 2002::/16 label 2
prefix fec0::/10 label 11
prefix fc00::/7 label 5
prefix ::/0 label 1
ok
test_add_address_label_dev (__main__.IPAddressLabelTests) ... prefix ::1/128 label 0
prefix ::/96 label 3
prefix ::ffff:0.0.0.0/96 label 4
prefix 2001:6f8:12d8:2::/64 dev if14 label 200
prefix 2001:6f8:900:8cbc::/64 dev if14 label 300
prefix 2001:4dd0:ff00:834::/64 dev if14 label 200
prefix 2a01:238:423d:8800::/64 dev if14 label 300
prefix 2001:6f8:12d8:2::/64 dev dummy-test label 200
prefix 2001:6f8:900:8cbc::/64 dev dummy-test label 300
prefix 2001:4dd0:ff00:834::/64 dev dummy-test label 200
prefix 2a01:238:423d:8800::/64 dev dummy-test label 300
prefix 2001::/32 label 6
prefix 2001:10::/28 label 7
prefix 3ffe::/16 label 12
prefix 2002::/16 label 2
prefix fec0::/10 label 11
prefix fc00::/7 label 5
prefix ::/0 label 1
ok

----------------------------------------------------------------------
Ran 2 tests in 0.077s

OK
```
2018-07-23 21:12:47 +05:30
Igor Gnatenko
c0b9f8a2e0 add BuildRequires: gcc
Reference: https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot
2018-07-18 11:23:40 +02:00
Fedora Release Engineering
2cbf771e76 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 05:48:27 +00:00
Susant Sahani
7ee9aeadb4 CI: Add ip address sanity tests
Snip:
```
iproute-4.15.0-1.fc28.x86_64
:: [ 18:10:39 ] :: [   PASS   ] :: Checking for the presence of iproute rpm
:: [ 18:10:39 ] :: [   PASS   ] :: Checking for the presence of iproute rpm
:: [ 18:10:39 ] :: [   LOG    ] :: Package versions:
:: [ 18:10:39 ] :: [   LOG    ] :: Package versions:
:: [ 18:10:39 ] :: [   LOG    ] ::   iproute-4.15.0-1.fc28.x86_64
:: [ 18:10:39 ] :: [   LOG    ] ::   iproute-4.15.0-1.fc28.x86_64
:: [ 18:10:39 ] :: [  BEGIN   ] :: Running 'cp ip-address-tests.py /usr/bin'
:: [ 18:10:39 ] :: [   PASS   ] :: Command 'cp ip-address-tests.py /usr/bin' (Expected 0, got 0)
:: [ 18:10:39 ] :: [   PASS   ] :: Command 'cp ip-address-tests.py /usr/bin' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Duration: 0s
::   Assertions: 2 good, 0 bad
::   Assertions: 2 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 18:10:39 ] :: [   LOG    ] :: ip address tests
:: [ 18:10:39 ] :: [   LOG    ] :: ip address tests
:: [ 18:10:39 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-address-tests.py'
test_add_address (__main__.IPAddressTests) ... ok
test_add_address_lifetime (__main__.IPAddressTests) ... ok
test_add_address_scope (__main__.IPAddressTests) ... ok
test_add_broadcast_address_label (__main__.IPAddressTests) ... ok
test_add_ipv6_address (__main__.IPAddressTests) ... ok
test_del_address (__main__.IPAddressTests) ... ok

----------------------------------------------------------------------
Ran 6 tests in 0.136s

OK
:: [ 18:10:39 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-address-tests.py' (Expected 0, got 0)
:: [ 18:10:39 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-address-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Duration: 1s
::   Assertions: 1 good, 0 bad
::   Assertions: 1 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::   Cleanup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 18:10:40 ] :: [  BEGIN   ] :: Running 'rm /usr/bin/ip-address-tests.py'
:: [ 18:10:40 ] :: [   PASS   ] :: Command 'rm /usr/bin/ip-address-tests.py' (Expected 0, got 0)
:: [ 18:10:40 ] :: [   PASS   ] :: Command 'rm /usr/bin/ip-address-tests.py' (Expected 0, got 0)
:: [ 18:10:40 ] :: [   LOG    ] :: ip address tests done
:: [ 18:10:40 ] :: [   LOG    ] :: ip address tests done
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Duration: 0s
::   Assertions: 1 good, 0 bad
::   Assertions: 1 good, 0 bad
::   RESULT: PASS
::   RESULT: PASS
```
2018-06-24 18:14:12 +05:30
Susant Sahani
84d80eb1b5 CI: Add ip link kind and set dev tests
justification
Adds tests according to the CI wiki specifically the standard test interface in the spec.
The playbook includes Tier1 level test cases that have been tested in the following contexts and
is passing reliably: Classic. Test logs are stored in the artifacts directory.
The following steps are used to execute the tests using the standard test interface:

Test enveronment
Make sure you have installed packages from the spec
```
ansible-2.4.1.0-2.fc28.noarch
python2-dnf-2.7.5-1.fc28.noarch
libselinux-python-2.7-2.fc28.x86_64
standard-test-roles-2.5-1.fc28.noarch
Run tests for Classic
Snip of the example test run for Classic tests:
```

```
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Setup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

iproute-4.15.0-1.fc28.x86_64
:: [ 16:56:03 ] :: [   PASS   ] :: Checking for the presence of iproute rpm
:: [ 16:56:03 ] :: [   LOG    ] :: Package versions:
:: [ 16:56:04 ] :: [   LOG    ] ::   iproute-4.15.0-1.fc28.x86_64
:: [ 16:56:04 ] :: [  BEGIN   ] :: Running 'cp ip-link-tests.py /usr/bin'
:: [ 16:56:04 ] :: [   PASS   ] :: Command 'cp ip-link-tests.py /usr/bin' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Assertions: 2 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:56:04 ] :: [   LOG    ] :: ip link tests
:: [ 16:56:04 ] :: [  BEGIN   ] :: Running '/usr/bin/python3 /usr/bin/ip-link-tests.py'
test_add_bond (__main__.IPLinkKindTests) ... ok
test_add_bridge (__main__.IPLinkKindTests) ... ok
test_add_dummy (__main__.IPLinkKindTests) ... ok
test_add_erspan_tunnel (__main__.IPLinkKindTests) ... ok
test_add_geneve_tunnel (__main__.IPLinkKindTests) ... ok
test_add_gre_tunnel (__main__.IPLinkKindTests) ... ok
test_add_gretap_tunnel (__main__.IPLinkKindTests) ... ok
test_add_ip6erspan_tunnel (__main__.IPLinkKindTests) ... ok
test_add_ip6gre_tunnel (__main__.IPLinkKindTests) ... ok
test_add_ip6gretap_tunnel (__main__.IPLinkKindTests) ... ok
test_add_ipip_tunnel (__main__.IPLinkKindTests) ... ok
test_add_ipvlan (__main__.IPLinkKindTests) ... ok
test_add_macsec (__main__.IPLinkKindTests) ... ok
test_add_macvlan (__main__.IPLinkKindTests) ... ok
test_add_macvtap (__main__.IPLinkKindTests) ... ok
test_add_sit_tunnel (__main__.IPLinkKindTests) ... ok
test_add_team (__main__.IPLinkKindTests) ... ok
test_add_vcan (__main__.IPLinkKindTests) ... ok
test_add_veth_pair (__main__.IPLinkKindTests) ... ok
test_add_vlan (__main__.IPLinkKindTests) ... ok
test_add_vrf (__main__.IPLinkKindTests) ... ok
test_add_vti_tunnel (__main__.IPLinkKindTests) ... ok
test_add_vxcan (__main__.IPLinkKindTests) ... ok
test_add_vxlan (__main__.IPLinkKindTests) ... ok
test_set_dev_address (__main__.IPLinkSetDevTests) ... ok
test_set_dev_alias (__main__.IPLinkSetDevTests) ... ok
test_set_dev_all_multicast (__main__.IPLinkSetDevTests) ... ok
test_set_dev_mtu (__main__.IPLinkSetDevTests) ... ok
test_set_dev_multicast (__main__.IPLinkSetDevTests) ... ok
test_set_dev_name (__main__.IPLinkSetDevTests) ... ok
test_set_dev_up_down (__main__.IPLinkSetDevTests) ... ok

----------------------------------------------------------------------
Ran 31 tests in 0.966s

OK
:: [ 16:56:05 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-link-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Assertions: 1 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:56:05 ] :: [  BEGIN   ] :: Running 'rm /usr/bin/ip-link-tests.py'
:: [ 16:56:05 ] :: [   PASS   ] :: Command 'rm /usr/bin/ip-link-tests.py' (Expected 0, got 0)
:: [ 16:56:05 ] :: [   LOG    ] :: ip link tests done
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Assertions: 1 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   TEST PROTOCOL
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    Package       : iproute
    Installed     : iproute-4.15.0-1.fc28.x86_64
    beakerlib RPM : beakerlib-1.17-13.fc28.noarch
    Test started  : 2018-06-17 16:56:03 IST
    Test finished : 2018-06-17 16:56:05 IST (still running)
    Test duration : 2 seconds
    Test name     : unknown
    Distro        : Fedora release 28 (Twenty Eight)
    Hostname      : Zeus
    Architecture  : x86_64
    CPUs          : 8 x Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
    RAM size      : 31542 MB
    HDD size      : 452.94 GB

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test description
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

PURPOSE of /CoreOS/iproute/Sanity/ip-link-sanity-test
Description: Test basic ip link funcionality
Author: Susant Sahani <susant@redhat.com>

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Setup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:56:03 ] :: [   PASS   ] :: Checking for the presence of iproute rpm
:: [ 16:56:03 ] :: [   LOG    ] :: Package versions:
:: [ 16:56:04 ] :: [   LOG    ] ::   iproute-4.15.0-1.fc28.x86_64
:: [ 16:56:04 ] :: [   PASS   ] :: Command 'cp ip-link-tests.py /usr/bin' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Assertions: 2 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:56:04 ] :: [   LOG    ] :: ip link tests
:: [ 16:56:05 ] :: [   PASS   ] :: Command '/usr/bin/python3 /usr/bin/ip-link-tests.py' (Expected 0, got 0)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Assertions: 1 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Cleanup
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:56:05 ] :: [   PASS   ] :: Command 'rm /usr/bin/ip-link-tests.py' (Expected 0, got 0)
:: [ 16:56:05 ] :: [   LOG    ] :: ip link tests done
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 0s
::   Assertions: 1 good, 0 bad
::   RESULT: PASS

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   unknown
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 16:56:05 ] :: [   LOG    ] :: JOURNAL XML: /var/tmp/beakerlib-zsCyOCP/journal.xml
:: [ 16:56:05 ] :: [   LOG    ] :: JOURNAL TXT: /var/tmp/beakerlib-zsCyOCP/journal.txt
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 2s
::   Phases: 3 good, 0 bad
::   OVERALL RESULT: PASS
```
2018-06-17 17:02:31 +05:30
Phil Sutter
27df2f2db4 Rebase package on top of iproute2-4.17.0 2018-06-12 21:37:37 +02:00
Phil Sutter
ec833118f5 Rebase package on top of iproute2-4.16.0 2018-06-01 16:26:52 +02:00
Phil Sutter
56a5d45dbb Rebase package on top of iproute2-4.15.0 2018-02-09 18:20:31 +01:00
Florian Weimer
a5ae4db5d3 Use LDFLAGS defaults from redhat-rpm-config 2018-02-09 11:06:00 +01:00
Fedora Release Engineering
b38c2a5154 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 17:36:19 +00:00
Phil Sutter
654c72b694 Merge #1 initial commit of tests from upstreamfirst project 2018-01-24 13:04:57 +00:00
Phil Sutter
c35ca47309 Add missing patch files 2017-12-11 17:42:14 +01:00
Phil Sutter
314af1dda2 iproute-4.14.1-3
- Add upstream suggested backports.
- Make use of %%autosetup macro.
2017-12-11 17:12:56 +01:00
Phil Sutter
73be52ab68 Drop unused build dependencies 2017-11-15 15:30:14 +01:00
Phil Sutter
e4fcc0347f Rebase package on top of iproute2-4.14.1 2017-11-15 14:56:50 +01:00
Mike Gahagan
f41cef03d3 initial commit of tests from upstreamfirst project 2017-09-28 13:39:29 -04:00
Phil Sutter
a329ddabba Rebase package on top of iproute2-4.13.0 2017-09-19 19:56:50 +02:00
Fedora Release Engineering
480bcfc508 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-02 23:50:34 +00:00
Fedora Release Engineering
bb38241151 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 13:39:24 +00:00
Phil Sutter
b66e3704a9 Rebase package on top of iproute2-4.12.0 2017-07-21 17:04:46 +02:00
Phil Sutter
6da80e439c Update gitignore and sources files for new package version 2017-05-23 14:36:29 +02:00
Phil Sutter
a5ccbe04be Rebase package on top of iproute2-4.11.0 2017-05-23 13:31:58 +02:00
Karsten Hopp
ee386742b8 don't build docs for module builds to limit dependencies 2017-05-12 11:35:21 +02:00
Karsten Hopp
7e4e9ce2e4 don't build docs for module builds to limit dependencies 2017-05-11 23:14:09 +02:00
Phil Sutter
12cefecf0f Add two fixes to 4.10.0 release from upstream 2017-03-18 01:11:04 +01:00
Phil Sutter
63284ad5e9 Add two fixes to 4.10.0 release from upstream 2017-03-17 22:51:42 +01:00
Phil Sutter
d0d65fdc0c Rebase package on top of iproute2-4.10.0 2017-03-17 17:31:18 +01:00
Phil Sutter
1a5ae27414 Update gitignore and sources files for new package version 2017-03-14 14:49:30 +01:00
Phil Sutter
e068a451ec Rebase package on top of iproute2-4.10.0 2017-03-14 14:42:23 +01:00
Fedora Release Engineering
5362d1ec60 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 16:31:32 +00:00
Thomas Woerner
92106c2795 - Release bump for iptables-1.6.1 (libxtables.so.12) 2017-02-02 13:54:21 +01:00
Phil Sutter
4608d0c11f Fix for failing 'make install' 2017-01-28 14:09:07 +01:00
Phil Sutter
4858e6e51e Rebase package on top of iproute2-4.9.0 2017-01-28 12:01:48 +01:00
Phil Sutter
d57a56be09 Resolve bz#1411127 for Rawhide, too 2017-01-13 15:16:02 +01:00
Phil Sutter
704fd20f88 Update gitignore and sources files for new package version 2016-11-30 10:45:01 +01:00
Phil Sutter
31a378e37b Rebase package on top of iproute2-4.8.0
This resolves https://bugzilla.redhat.com/show_bug.cgi?id=1383317
2016-11-30 10:20:10 +01:00
Phil Sutter
7410b1a1e2 Rebase package on top of iproute2-4.7.0
This resolves https://bugzilla.redhat.com/show_bug.cgi?id=1365327
2016-08-10 16:13:27 +02:00
64 changed files with 3167 additions and 899 deletions

9
.gitignore vendored
View file

@ -1,3 +1,6 @@
/iproute2-4.10.0.tar.xz
/iproute2-4.11.0.tar.xz
/iproute2-4.12.0.tar.xz
/iproute2-6.8.0.tar.xz
/iproute2-6.10.0.tar.xz
/iproute2-6.12.0.tar.xz
/iproute2-6.14.0.tar.xz
/iproute2-6.16.0.tar.xz
/iproute2-6.17.0.tar.xz

View file

@ -1,43 +0,0 @@
From 7f27c8433061f2732925f120b11f5ca3c06caf28 Mon Sep 17 00:00:00 2001
From: Phil Sutter <psutter@redhat.com>
Date: Sat, 28 Jan 2017 12:56:24 +0100
Subject: [PATCH] Documentation fixes
---
man/man8/cbq.8 | 1 +
man/man8/ss.8 | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
create mode 100644 man/man8/cbq.8
diff --git a/man/man8/cbq.8 b/man/man8/cbq.8
new file mode 100644
index 00000000..bef35201
--- /dev/null
+++ b/man/man8/cbq.8
@@ -0,0 +1 @@
+.so man8/tc-cbq.8
diff --git a/man/man8/ss.8 b/man/man8/ss.8
index 4ef11523..3898bdbd 100644
--- a/man/man8/ss.8
+++ b/man/man8/ss.8
@@ -142,7 +142,7 @@ Read filter information from FILE.
Each line of FILE is interpreted like single command line option. If FILE is - stdin is used.
.TP
.B FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
-Please take a look at the official documentation (Debian package iproute-doc) for details regarding filters.
+Please take a look at the official documentation (package iproute\-doc) for details regarding filters.
.SH STATE-FILTER
@@ -197,7 +197,7 @@ Find all local processes connected to X server.
List all the tcp sockets in state FIN-WAIT-1 for our apache to network 193.233.7/24 and look at their timers.
.SH SEE ALSO
.BR ip (8),
-.BR /usr/share/doc/iproute-doc/ss.html " (package iproute­doc)",
+.BR /usr/share/doc/iproute-doc/ss.ps " (package iproute\-doc)",
.br
.BR RFC " 793 "
- https://tools.ietf.org/rfc/rfc793.txt (TCP states)
--
2.11.0

View file

@ -1,38 +0,0 @@
From ceb67c148b50eadd078e280b2cb6be77fdda80fc Mon Sep 17 00:00:00 2001
From: Simon Horman <simon.horman@netronome.com>
Date: Wed, 8 Feb 2017 13:04:31 +0100
Subject: [PATCH] tc: flower: use correct type when calling
flower_icmp_attr_type
Use enum flower_icmp_field rather than bool as type of third parameter
when calling flower_icmp_attr_type.
Fixes: eb3b5696f163 ("tc: flower: support matching on ICMP type and code")
Signed-off-by: Simon Horman <simon.horman@netronome.com>
(cherry picked from commit 81f6e5a7279eaab826ba8b291b98fb2e89df0572)
---
tc/f_flower.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tc/f_flower.c b/tc/f_flower.c
index 145a8566..75a3fbbc 100644
--- a/tc/f_flower.c
+++ b/tc/f_flower.c
@@ -752,10 +752,12 @@ static int flower_print_opt(struct filter_util *qu, FILE *f,
if (nl_type >= 0)
flower_print_port(f, "src_port", tb[nl_type]);
- nl_type = flower_icmp_attr_type(eth_type, ip_proto, false);
+ nl_type = flower_icmp_attr_type(eth_type, ip_proto,
+ FLOWER_ICMP_FIELD_TYPE);
if (nl_type >= 0)
flower_print_icmp(f, "icmp_type", tb[nl_type]);
- nl_type = flower_icmp_attr_type(eth_type, ip_proto, true);
+ nl_type = flower_icmp_attr_type(eth_type, ip_proto,
+ FLOWER_ICMP_FIELD_CODE);
if (nl_type >= 0)
flower_print_icmp(f, "icmp_code", tb[nl_type]);
--
2.11.0

View file

@ -1,38 +0,0 @@
From b4bcfe51bfa555281cf583de46058b95c5fded97 Mon Sep 17 00:00:00 2001
From: Daniel Borkmann <daniel@iogearbox.net>
Date: Mon, 6 Mar 2017 13:06:00 +0100
Subject: [PATCH] bpf: test for valid type in bpf_get_work_dir
Jan-Erik reported an assertion in bpf_prog_to_subdir() failed where
type was BPF_PROG_TYPE_UNSPEC, which is only used in bpf_init_env()
to auto-mount and cache the bpf fs mount point.
Therefore, make sure when bpf_init_env() is called multiple times
(f.e. eBPF classifier with eBPF action attached) and bpf_mnt_cached
is set already that the type is also valid. In bpf_init_env(), we're
only interested in the mount point and not a type-specific subdir.
Fixes: e42256699cac ("bpf: make tc's bpf loader generic and move into lib")
Reported-by: Jan-Erik Rediger <janerik@rediger.net>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
(cherry picked from commit 51361a9f1cfca81259c68515cb24fbaace03136a)
---
lib/bpf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/bpf.c b/lib/bpf.c
index 64e199b3..fef9cfcd 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -596,7 +596,7 @@ static const char *bpf_get_work_dir(enum bpf_prog_type type)
if (bpf_mnt_cached) {
const char *out = mnt;
- if (out) {
+ if (out && type) {
snprintf(bpf_tmp, sizeof(bpf_tmp), "%s%s/",
out, bpf_prog_to_subdir(type));
out = bpf_tmp;
--
2.11.0

16
README.etc Normal file
View file

@ -0,0 +1,16 @@
You are looking for your iproute2 config in /etc/iproute2 and it's gone?
Here's an explanation on what's going on:
From v6.5.0, iproute2 supports stateless configuration pattern. This
means that iproute2 now read its config from /etc/iproute2/FOO, and,
if it does not exist, fall back to /usr/share/iproute2/FOO.
You can find iproute2 default configuration in /usr/share/iproute2,
while you can store your user-modified config files in /etc/iproute2.
/usr/share/iproute2 files are not supposed to be manually modified.
If a previous update broke your user config for iproute2, you may
have one or more ".rpmsave" files in /etc/iproute2. You can restore
your config simply dropping the ".rpmsave" suffix from the file name.

1
avpkt
View file

@ -1 +0,0 @@
AVPKT=3000

View file

@ -1,5 +0,0 @@
DEVICE=eth0,10Mbit,1Mbit
RATE=128Kbit
WEIGHT=10Kbit
PRIO=5
RULE=192.168.1.0/24

View file

@ -1,45 +1,42 @@
%global cbq_version v0.7.3
Summary: Advanced IP routing and network device configuration tools
Name: iproute
Version: 4.12.0
Release: 1%{?dist}
Group: Applications/System
URL: http://kernel.org/pub/linux/utils/net/%{name}2/
Source0: http://kernel.org/pub/linux/utils/net/%{name}2/%{name}2-%{version}.tar.xz
Source1: cbq-0000.example
Source2: avpkt
Version: 6.17.0
Release: %autorelease
URL: https://kernel.org/pub/linux/utils/net/%{name}2/
Source0: https://kernel.org/pub/linux/utils/net/%{name}2/%{name}2-%{version}.tar.xz
%if 0%{?rhel}
Source1: rt_dsfield.deprecated
%endif
Source2: README.etc
# Fedora local docs changes:
# - We ship cbq.init-v0.7.3 as cbq binary, so have a cbq.8 man page which links
# to tc-cbq.8.
# - Drop reference to Debian from ss.8 man page.
# - We ship ss.ps instead of ss.html.
Patch1: 0001-Documentation-fixes.patch
License: GPLv2+ and Public Domain
License: GPL-2.0-or-later AND NIST-PD
BuildRequires: bison
BuildRequires: elfutils-libelf-devel
BuildRequires: flex
BuildRequires: gcc
BuildRequires: iptables-devel >= 1.4.5
BuildRequires: libdb-devel
BuildRequires: libbpf-devel
BuildRequires: libcap-devel
BuildRequires: libmnl-devel
BuildRequires: libselinux-devel
BuildRequires: linuxdoc-tools
BuildRequires: make
BuildRequires: pkgconfig
BuildRequires: psutils
BuildRequires: tex(cm-super-t1.enc)
BuildRequires: tex(dvips)
BuildRequires: tex(ecrm1000.tfm)
BuildRequires: tex(latex)
BuildRequires: tex(fullpage.sty)
%if ! 0%{?_module_build}
%if 0%{?fedora}
BuildRequires: linux-atm-libs-devel
%endif
# For the UsrMove transition period
Conflicts: filesystem < 3
%endif
Requires: libbpf
Requires: psmisc
# Compat symlinks for Requires in other packages.
Provides: /sbin/ip
Obsoletes: %{name} < 4.5.0-3
Recommends: %{name}-tc
%if "%{_sbindir}" == "%{_bindir}"
# We rely on filesystem to create the symlink for us.
Requires: filesystem(unmerged-sbin-symlinks)
Provides: /usr/sbin/ip
Provides: /usr/sbin/ss
%endif
%description
The iproute package contains networking utilities (ip and rtmon, for example)
@ -48,68 +45,46 @@ kernel.
%package tc
Summary: Linux Traffic Control utility
Group: Applications/System
License: GPLv2+
Obsoletes: %{name} < 4.5.0-3
License: GPL-2.0-or-later
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: tc
Provides: /sbin/tc
%description tc
The Traffic Control utility manages queueing disciplines, their classes and
attached filters and actions. It is the standard tool to configure QoS in
Linux.
%if ! 0%{?_module_build}
%package doc
Summary: Documentation for iproute2 utilities with examples
Group: Applications/System
License: GPLv2+
License: GPL-2.0-or-later
Requires: %{name} = %{version}-%{release}
%description doc
The iproute documentation contains howtos and examples of settings.
%endif
%package devel
Summary: iproute development files
Group: Development/Libraries
License: GPLv2+
License: GPL-2.0-or-later
Requires: %{name} = %{version}-%{release}
Provides: iproute-static = %{version}-%{release}
%description devel
The libnetlink static library.
%prep
%setup -q -n %{name}2-%{version}
%patch1 -p1
%autosetup -p1 -n %{name}2-%{version}
%build
export CFLAGS="%{optflags}"
export LIBDIR=/%{_libdir}
export IPT_LIB_DIR=/%{_lib}/xtables
./configure
make %{?_smp_mflags}
make -C doc
%configure --color auto
echo -e "\nPREFIX=%{_prefix}\nSBINDIR=%{_sbindir}" >> config.mk
%make_build
%install
export DESTDIR='%{buildroot}'
export SBINDIR='%{_sbindir}'
export MANDIR='%{_mandir}'
export LIBDIR='%{_libdir}'
export CONFDIR='%{_sysconfdir}/iproute2'
export DOCDIR='%{_docdir}'
make install
%make_install
install -m755 examples/cbq.init-%{cbq_version} ${DESTDIR}/${SBINDIR}/cbq
install -d -m755 %{buildroot}%{_sysconfdir}/sysconfig/cbq
for config in \
%{SOURCE1} \
%{SOURCE2}
do install -m644 ${config} %{buildroot}%{_sysconfdir}/sysconfig/cbq
done
# extra man pages from Patch1, seems like these are not mainline yet
for mp in cbq genl ifcfg ifstat; do
install -m644 man/man8/${mp}.8 %{buildroot}%{_mandir}/man8
done
echo '.so man8/tc-cbq.8' > %{buildroot}%{_mandir}/man8/cbq.8
# libnetlink
install -D -m644 include/libnetlink.h %{buildroot}%{_includedir}/libnetlink.h
@ -118,44 +93,61 @@ install -D -m644 lib/libnetlink.a %{buildroot}%{_libdir}/libnetlink.a
# drop these files, iproute-doc package extracts files directly from _builddir
rm -rf '%{buildroot}%{_docdir}'
mkdir -p %{buildroot}%{_sysconfdir}/iproute2
cp %{SOURCE2} %{buildroot}%{_sysconfdir}/iproute2/README
# append deprecated values to rt_dsfield for compatibility reasons
%if 0%{?rhel}
cat %{SOURCE1} >>%{buildroot}%{_datadir}/iproute2/rt_dsfield
cp %{SOURCE2} %{buildroot}%{_datadir}/iproute2/README
# RHEL-94662: restore /etc/iproute2 conf files, if modified
# this is safe because we don't have conf files in /etc/iproute2 anymore, so
# every *.rpmsave file over there is a leftover from a failed conf upgrade
%posttrans
if [ -f /etc/iproute2/*rpmsave ]; then
for conffile in /etc/iproute2/*rpmsave; do
mv $conffile ${conffile%.rpmsave}
done
fi
%endif
%files
%dir %{_sysconfdir}/iproute2
%{!?_licensedir:%global license %%doc}
%dir %{_datadir}/iproute2
%license COPYING
%doc README README.decnet README.distribution README.lnstat
%doc README README.devel
%{_mandir}/man7/*
%exclude %{_mandir}/man7/tc-*
%{_mandir}/man8/*
%exclude %{_mandir}/man8/tc*
%exclude %{_mandir}/man8/cbq*
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/iproute2/*
%exclude %{_mandir}/man8/arpd*
%attr(644,root,root) %config %{_datadir}/iproute2/*
%{_sbindir}/*
%attr(644,root,root) %{_sysconfdir}/iproute2/*
%exclude %{_sbindir}/tc
%exclude %{_sbindir}/cbq
%exclude %{_sbindir}/routel
%{_datadir}/bash-completion/completions/devlink
%files tc
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc README.iproute2+tc
%{_mandir}/man7/tc-*
%{_mandir}/man8/tc*
%{_mandir}/man8/cbq*
%dir %{_libdir}/tc/
%{_libdir}/tc/*
%{_sbindir}/tc
%{_sbindir}/cbq
%dir %{_sysconfdir}/sysconfig/cbq
%config(noreplace) %{_sysconfdir}/sysconfig/cbq/*
%{_datadir}/bash-completion/completions/tc
%if ! 0%{?_module_build}
%files doc
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc doc/*.ps
%doc examples
%endif
%files devel
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_mandir}/man3/*
%{_libdir}/libnetlink.a
@ -163,697 +155,4 @@ rm -rf '%{buildroot}%{_docdir}'
%{_includedir}/iproute2/bpf_elf.h
%changelog
* Fri Jul 21 2017 Phil Sutter <psutter@redhat.com> - 4.12.0-1
- New version 4.12.0
* Tue May 23 2017 Phil Sutter <psutter@redhat.com> - 4.11.0-1
- Add virtual capability to tc subpackage so it's easier found
- New version 4.11.0
* Fri Mar 17 2017 Phil Sutter <psutter@redhat.com> - 4.10.0-1
- Add two fixes to 4.10.0 release from upstream
- Rebase onto version 4.10.0 to match kernel version
* Fri Jan 13 2017 Phil Sutter <psutter@redhat.com> - 4.6.0-6
- Fix segfault in xt action
* Fri Nov 25 2016 Ido Schimmel <idosch@mellanox.com> - 4.6.0-5
- Add matchall classifier
* Fri Nov 25 2016 Ido Schimmel <idosch@mellanox.com> - 4.6.0-4
- Add devlink JSON patches
* Fri Nov 25 2016 Ido Schimmel <idosch@mellanox.com> - 4.6.0-3
- Add Makefile patches to install devlink manpages
* Fri Nov 25 2016 Ido Schimmel <idosch@mellanox.com> - 4.6.0-2
- Add devlink shared buffer patches
* Wed May 04 2016 Phil Sutter <psutter@redhat.com> - 4.6.0-1
- New version 4.6.0
* Wed Apr 13 2016 Thomas Woerner <twoerner@redhat.com> - 4.5.0-4
- Rebuild for new iptables-1.6.0 with libxtables so bump
* Fri Apr 08 2016 Phil Sutter <psutter@redhat.com> - 4.5.0-3
- Fix upgrade path by adding correct Requires/Obsoletes statements to spec file
- Move README.iproute2+tc into tc subpackage
* Fri Mar 18 2016 Phil Sutter <psutter@redhat.com> - 4.5.0-2
- Split tc into it's own subpackage
* Fri Mar 18 2016 Phil Sutter <psutter@redhat.com> - 4.5.0-1
- New version 4.5.0
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jan 19 2016 Phil Sutter <psutter@redhat.com> - 4.4.0-1
- New version 4.4.0
* Sun Oct 04 2015 Phil Sutter <psutter@redhat.com> - 4.2.0-4
- Simplify RPM install stage by using package's install target
* Sun Oct 04 2015 Phil Sutter <psutter@redhat.com> - 4.2.0-3
- Add missing build dependency to libmnl-devel
- Ship tipc utility
* Thu Sep 24 2015 Phil Sutter <psutter@redhat.com> - 4.2.0-2
- Add missing build dependency to libselinux-devel
* Wed Sep 02 2015 Pavel Šimerda <psimerda@redhat.com> - 4.2.0-1
- new version 4.2.0
* Tue Jul 07 2015 Pavel Šimerda <psimerda@redhat.com> - 4.1.1-1
- new version 4.1.1
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed May 13 2015 Pavel Šimerda <psimerda@redhat.com> - 4.0.0-3
- remove patch rejected by upstream
* Mon May 11 2015 Pavel Šimerda <psimerda@redhat.com> - 4.0.0-2
- Remove patch rejected by upstream
* Tue Apr 14 2015 Pavel Šimerda <psimerda@redhat.com> - 4.0.0-1
- new version 4.0.0
* Fri Mar 13 2015 Pavel Šimerda <psimerda@redhat.com> - 3.19.0-1
- new version 3.19.0
* Sat Oct 04 2014 Lubomir Rintel <lkundrak@v3.sk> - 3.16.0-3
- Backport fix for ip link add name regression that broke libvirt
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.16.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Tue Aug 05 2014 Petr Šabata <contyk@redhat.com> - 3.16.0-1
- 3.16 bump
* Sat Jul 12 2014 Tom Callaway <spot@fedoraproject.org> - 3.15.0-2
- fix license handling
* Thu Jun 12 2014 Petr Šabata <contyk@redhat.com> - 3.15.0-1
- 3.15.0 bump
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.14.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 06 2014 Petr Šabata <contyk@redhat.com> - 3.14.0-2
- Fix incorrect references in ss(8), #1092653
* Tue Apr 15 2014 Petr Šabata <contyk@redhat.com> - 3.14.0-1
- 3.14 bump
- Drop out iplink_have_newlink() fix in favor of upstream's approach
* Tue Nov 26 2013 Petr Šabata <contyk@redhat.com> - 3.12.0-2
- Drop libnl from dependencies (#1034454)
* Mon Nov 25 2013 Petr Šabata <contyk@redhat.com> - 3.12.0-1
- 3.12.0 bump
* Thu Nov 21 2013 Petr Šabata <contyk@redhat.com> - 3.11.0-2
- Fix the rtt time parsing again
* Tue Oct 22 2013 Petr Šabata <contyk@redhat.com> - 3.11.0-1
- 3.11 bump
* Tue Oct 01 2013 Petr Pisar <ppisar@redhat.com> - 3.10.0-8
- Close file with bridge monitor file (bug #1011822)
* Tue Sep 24 2013 Petr Pisar <ppisar@redhat.com> - 3.10.0-7
- Add tc -OK option
- Document "bridge mdb" and "bridge monitor mdb"
* Fri Aug 30 2013 Petr Šabata <contyk@redhat.com> - 3.10.0-6
- Fix lnstat -i properly this time
* Thu Aug 29 2013 Petr Šabata <contyk@redhat.com> - 3.10.0-5
- Fix an 'ip link' hang (#996537)
* Tue Aug 13 2013 Petr Šabata <contyk@redhat.com> - 3.10.0-4
- lnstat -i: Run indefinitely if the --count isn't specified (#977845)
- Switch to unversioned %%docdir
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Jul 17 2013 Petr Šabata <contyk@redhat.com> - 3.10.0-2
- Fix the XFRM patch
* Wed Jul 17 2013 Petr Šabata <contyk@redhat.com> - 3.10.0-1
- 3.10.0 bump
- Drop the SHAREDIR patch and revert to upstream ways (#966445)
- Fix an XFRM regression with FORTIFY_SOURCE
* Tue Apr 30 2013 Petr Šabata <contyk@redhat.com> - 3.9.0-1
- 3.9.0 bump
* Thu Apr 25 2013 Petr Šabata <contyk@redhat.com> - 3.8.0-4
- ATM is available in Fedora only
* Tue Mar 12 2013 Petr Šabata <contyk@redhat.com> - 3.8.0-3
- Mention the "up" argument in documentation and help outputs (#907468)
* Mon Mar 04 2013 Petr Šabata <contyk@redhat.com> - 3.8.0-2
- Bump for 1.4.18 rebuild
* Tue Feb 26 2013 Petr Šabata <contyk@redhat.com> - 3.8.0-1
- 3.8.0 bump
* Fri Feb 08 2013 Petr Šabata <contyk@redhat.com> - 3.7.0-2
- Don't propogate mounts out of ip (#882047)
* Wed Dec 12 2012 Petr Šabata <contyk@redhat.com> - 3.7.0-1
- 3.7.0 bump
* Mon Nov 19 2012 Petr Šabata <contyk@redhat.com> - 3.6.0-3
- Include section 7 manpages (#876857)
- Fix ancient bogus dates in the changelog (correction based upon commits)
- Explicitly require some TeX fonts no longer present in the base distribution
* Thu Oct 04 2012 Petr Šabata <contyk@redhat.com> - 3.6.0-2
- List all interfaces by default
* Wed Oct 03 2012 Petr Šabata <contyk@redhat.com> - 3.6.0-1
- 3.6.0 bump
* Thu Aug 30 2012 Petr Šabata <contyk@redhat.com> - 3.5.1-2
- Remove the explicit iptables dependency (#852840)
* Tue Aug 14 2012 Petr Šabata <contyk@redhat.com> - 3.5.1-1
- 3.5.1 bugfix release bump
- Rename 'br' to 'bridge'
* Mon Aug 06 2012 Petr Šabata <contyk@redhat.com> - 3.5.0-2
- Install the new bridge utility
* Thu Aug 02 2012 Petr Šabata <contyk@redhat.com> - 3.5.0-1
- 3.5.0 bump
- Move to db5.
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue May 22 2012 Petr Šabata <contyk@redhat.com> - 3.4.0-1
- 3.4.0 bump
- Drop the print route patch (included upstream)
* Mon Apr 30 2012 Petr Šabata <contyk@redhat.com> - 3.3.0-2
- Let's install rtmon too... (#814819)
* Thu Mar 22 2012 Petr Šabata <contyk@redhat.com> - 3.3.0-1
- 3.3.0 bump
- Update source URL
* Mon Feb 27 2012 Petr Šabata <contyk@redhat.com> - 3.2.0-3
- Address dangerous /tmp files security issue (CVE-2012-1088, #797881, #797878)
* Fri Jan 27 2012 Petr Šabata <contyk@redhat.com> - 3.2.0-2
- Simplify the spec a bit thanks to the UsrMove feature
* Fri Jan 06 2012 Petr Šabata <contyk@redhat.com> - 3.2.0-1
- 3.2.0 bump
- Removing a useless, now conflicting patch (initcwnd already decumented)
* Thu Nov 24 2011 Petr Šabata <contyk@redhat.com> - 3.1.0-1
- 3.1.0 bump
- Point URL and Source to the new location on kernel.org
- Remove now obsolete defattr
- Dropping various patches now included upstream
- Dropping iproute2-2.6.25-segfault.patch; I fail to understand the reason for
this hack
* Tue Nov 15 2011 Petr Šabata <contyk@redhat.com> - 2.6.39-6
- ss -ul should display UDP CLOSED sockets (#691100)
* Thu Oct 06 2011 Petr Sabata <contyk@redhat.com> - 2.6.39-5
- Fix ss, lnstat and arpd usage and manpages
* Wed Sep 07 2011 Petr Sabata <contyk@redhat.com> - 2.6.39-4
- lnstat should dump (-d) to stdout instead of stderr (#736332)
* Tue Jul 26 2011 Petr Sabata <contyk@redhat.com> - 2.6.39-3
- Rebuild for xtables7
* Tue Jul 12 2011 Petr Sabata <contyk@redhat.com> - 2.6.39-2
- Rebuild for xtables6
* Thu Jun 30 2011 Petr Sabata <contyk@redhat.com> - 2.6.39-1
- 2.6.39 bump
* Wed Apr 27 2011 Petr Sabata <psabata@redhat.com> - 2.6.38.1-4
- Link [cr]tstat to lnstat
* Wed Apr 27 2011 Petr Sabata <psabata@redhat.com> - 2.6.38.1-3
- Install ctstat, rtstat and routef manpage symlinks
- Install m_xt & m_ipt tc modules
- Creating devel and virtual static subpackages with libnetlink
* Thu Apr 21 2011 Petr Sabata <psabata@redhat.com> - 2.6.38.1-2
- General cleanup
- Use global instead of define
- Buildroot removal
- Correcting URL and Source links
- Install genl, ifstat, routef, routel and rtpr (rhbz#697319)
* Fri Mar 18 2011 Petr Sabata <psabata@redhat.com> - 2.6.38.1-1
- 2.6.38.1 bump
* Wed Mar 16 2011 Petr Sabata <psabata@redhat.com> - 2.6.38-1
- 2.6.38 bump
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.37-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon Jan 31 2011 Petr Sabata <psabata@redhat.com> - 2.6.37-2
- man-pages.patch update, ip(8) TYPE whitespace
* Mon Jan 10 2011 Petr Sabata <psabata@redhat.com> - 2.6.37-1
- 2.6.37 upstream release
- ss(8) improvements patch removed (included upstream)
* Wed Dec 08 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-10
- fix a typo in ss(8) improvements patch, rhbz#661267
* Tue Nov 30 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-9
- ss(8) improvements patch by jpopelka; should be included in 2.6.36
* Tue Nov 09 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-8
- rhbz#641599, use the versioned path, man-pages.patch update, prep update
* Tue Oct 12 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-7
- Do not segfault if peer name is omitted when creating a peer veth link, rhbz#642322
* Mon Oct 11 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-6
- Man-pages update, rhbz#641599
* Wed Sep 29 2010 jkeating - 2.6.35-5
- Rebuilt for gcc bug 634757
* Tue Sep 21 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-4
- Modified man-pages.patch to fix cbq manpage, rhbz#635877
* Tue Sep 21 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-3
- Don't print routes with negative metric fix, rhbz#628739
* Wed Aug 18 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-2
- 'ip route get' fix, iproute2-2.6.35-print-route.patch
- rhbz#622782
* Thu Aug 05 2010 Petr Sabata <psabata@redhat.com> - 2.6.35-1
- 2.6.35 version bump
- iproute2-tc-priority.patch removed (included in upstream now)
* Thu Jul 08 2010 Petr Sabata <psabata@redhat.com> - 2.6.34-5
- Licensing guidelines compliance fix
* Wed Jul 07 2010 Petr Sabata <psabata@redhat.com> - 2.6.34-4
- Requires: iptables >= 1.4.5, BuildRequires: iptables-devel >= 1.4.5
* Thu Jul 01 2010 Petr Sabata <psabata@redhat.com> - 2.6.34-3
- Build now runs ./configure to regenerate Makefile for ipt/xt detection
* Mon Jun 21 2010 Petr Sabata <psabata@redhat.com> - 2.6.34-2
- iproute-tc-priority.patch, rhbz#586112
* Mon Jun 21 2010 Petr Sabata <psabata@redhat.com> - 2.6.34-1
- 2.6.34 version bump
* Tue Apr 20 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.33-2
- 578729 6rd tunnel correctly 3979ef91de9ed17d21672aaaefd6c228485135a2
- change BR texlive to tex according to guidelines
* Thu Feb 25 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.33-1
- update
* Tue Jan 26 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.32-2
- add macvlan aka VESA support d63a9b2b1e4e3eab0d0577d0a0f412d50be1e0a7
- kernel headers 2.6.33 ab322673298bd0b8927cdd9d11f3d36af5941b93
are needed for macvlan features and probably for other added later.
- fix number of release which contains 2.6.32 kernel headers and features
but it was released as 2.6.31
* Mon Jan 4 2010 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.31-1
- update to 2.6.31
* Fri Nov 27 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-5.1.20091106gita7a9ddbb
- 539232 patch cbq initscript
* Fri Nov 27 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-5.0.20091106gita7a9ddbb
- snapshot with kernel headers for 2.6.32
* Fri Oct 9 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-5.0.20091009gitdaf49fd6
- new official version isn't available but it's needed -> switch to git snapshots
* Thu Sep 24 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-5
- create missing man pages
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.29-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Thu Apr 23 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-3
- new iptables (xtables) bring problems to tc, when ipt is used.
rhbz#497344 still broken. tc_modules.patch brings correct paths to
xtables, but that doesn't fix whole issue.
- 497355 ip should allow creation of an IPsec SA with 'proto any'
and specified sport and dport as selectors
* Tue Apr 14 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-2
- c3651bf4763d7247e3edd4e20526a85de459041b ip6tunnel: Fix no default
display of ip4ip6 tunnels
- e48f73d6a5e90d2f883e15ccedf4f53d26bb6e74 missing arpd directory
* Wed Mar 25 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.29-1
- update to 2.6.29
- remove DDR patch which became part of sourc
- add patch with correct headers 1957a322c9932e1a1d2ca1fd37ce4b335ceb7113
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6.28-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Feb 4 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.28-2
- 483484 install distribution files into /usr/share and also fixed
install paths in spec
- add the latest change from git which add DRR support
c86f34942a0ce9f8203c0c38f9fe9604f96be706
* Mon Jan 19 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.28-1
- previous two patches were included into 2.6.28 release.
- update
* Mon Jan 12 2009 Marcela Mašláňová <mmaslano@redhat.com> - 2.6.27-2
- 475130 - Negative preferred lifetimes of IPv6 prefixes/addresses
displayed incorrectly
- 472878 - “ip maddr show” in IB interface causes a stack corruption
- both patches will be probably in iproute v2.6.28
* Thu Dec 4 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.27-1
- aead support was included into upstream version
- patch for moving libs is now deprecated
- update to 2.6.27
* Tue Aug 12 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.26-1
- update to 2.6.26
- clean patches
* Tue Jul 22 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.25-5
- fix iproute2-2.6.25-segfault.patch
* Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.6.25-4
- rebuild for new db4-4.7
* Thu Jul 3 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.25-3
- 449933 instead of failing strncpy use copying byte after byte
* Wed May 14 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.25-2
- allow replay setting, solve also 444724
* Mon Apr 21 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.25-1
- update
- remove patch for backward compatibility
- add patch for AEAD compatibility
* Thu Feb 21 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.23-4
- add creating ps file again. Fix was done in texlive
* Wed Feb 6 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.23-3
- rebuild without tetex files. It isn't working in rawhide yet. Added
new source for ps files.
- #431179 backward compatibility for previous iproute versions
* Mon Jan 21 2008 Marcela Maslanova <mmaslano@redhat.com> - 2.6.23-2
- rebuild with fix tetex and linuxdoc-tools -> manual pdf
- clean unnecessary patches
- add into spec *.so objects, new BR linux-atm-libs-devel
* Wed Oct 31 2007 Marcela Maslanova <mmaslano@redhat.com> - 2.6.23-1
- new version from upstrem 2.3.23
* Tue Oct 23 2007 Marcela Maslanova <mmaslano@redhat.com> - 2.6.22-5
- move files from /usr/lib/tc to /usr/share/tc
- remove listing files twice
* Fri Aug 31 2007 Marcela Maslanova <mmaslano@redhat.com> - 2.6.22-3
- package review #225903
* Mon Aug 27 2007 Jeremy Katz <katzj@redhat.com> - 2.6.22-2
- rebuild for new db4
* Wed Jul 11 2007 Radek Vokál <rvokal@redhat.com> - 2.6.22-1
- upgrade to 2.6.22
* Mon Mar 19 2007 Radek Vokál <rvokal@redhat.com> - 2.6.20-2
- fix broken tc-pfifo man page (#232891)
* Thu Mar 15 2007 Radek Vokál <rvokal@redhat.com> - 2.6.20-1
- upgrade to 2.6.20
* Fri Dec 15 2006 Radek Vokál <rvokal@redhat.com> - 2.6.19-1
- upgrade to 2.6.19
* Mon Dec 11 2006 Radek Vokál <rvokal@redhat.com> - 2.6.18-5
- fix snapshot version
* Fri Dec 1 2006 Radek Vokál <rvokal@redhat.com> - 2.6.18-4
- spec file cleanup
- one more rebuilt against db4
* Thu Nov 16 2006 Radek Vokál <rvokal@redhat.com> - 2.6.18-3
- fix defective manpage for tc-pfifo (#215399)
* Mon Nov 13 2006 Radek Vokál <rvokal@redhat.com> - 2.6.18-2
- rebuilt against new db4
* Tue Oct 3 2006 Radek Vokal <rvokal@redhat.com> - 2.6.18-1
- upgrade to upstream 2.6.18
- initcwnd patch merged
- bug fix for xfrm monitor
- alignment fixes for cris
- documentation corrections
* Mon Oct 2 2006 Radek Vokal <rvokal@redhat.com> - 2.6.16-7
- fix ip.8 man page, add initcwnd option
* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 2.6.16-6
- rebuilt for unwind info generation, broken in gcc-4.1.1-21
* Tue Sep 19 2006 Radek Vokal <rvokal@redhat.com> - 2.6.16-5
- fix crash when resolving ip address
* Mon Aug 21 2006 Radek Vokál <rvokal@redhat.com> - 2.6.16-4
- add LOWER_UP and DORMANT flags (#202199)
- use dist tag
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 2.6.16-3.1
- rebuild
* Mon Jun 26 2006 Radek Vokál <rvokal@redhat.com> - 2.6.16-3
- improve handling of initcwnd value (#179719)
* Sun May 28 2006 Radek Vokál <rvokal@redhat.com> - 2.6.16-2
- fix BuildRequires: flex (#193403)
* Sun Mar 26 2006 Radek Vokál <rvokal@redhat.com> - 2.6.16-1
- upgrade to 2.6.16-060323
- don't hardcode /usr/lib in tc (#186607)
* Wed Feb 22 2006 Radek Vokál <rvokal@redhat.com> - 2.6.15-2
- own /usr/lib/tc (#181953)
- obsoletes shapecfg (#182284)
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 2.6.15-1.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 2.6.15-1.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Tue Jan 17 2006 Radek Vokal <rvokal@redhat.com> 2.6.15-1
- upgrade to 2.6.15-060110
* Mon Dec 12 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-11
- rebuilt
* Fri Dec 09 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-10
- remove backup of config files (#175302)
* Fri Nov 11 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-9
- use tc manpages and cbq.init from source tarball (#172851)
* Thu Nov 10 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-8
- new upstream source
* Mon Oct 31 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-7
- add warning to ip tunnel add command (#128107)
* Fri Oct 07 2005 Bill Nottingham <notting@redhat.com> 2.6.14-6
- update from upstream (appears to fix #170111)
* Fri Oct 07 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-5
- update from upstream
- fixed host_len size for memcpy (#168903) <Matt_Domsch@dell.com>
* Fri Sep 23 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-4
- add RPM_OPT_FLAGS
* Mon Sep 19 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-3
- forget to apply the patch :(
* Mon Sep 19 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-2
- make ip help work again (#168449)
* Wed Sep 14 2005 Radek Vokal <rvokal@redhat.com> 2.6.14-1
- upgrade to ss050901 for 2.6.14 kernel headers
* Fri Aug 26 2005 Radek Vokal <rvokal@redhat.com> 2.6.13-3
- added /sbin/cbq script and sample configuration files (#166301)
* Fri Aug 19 2005 Radek Vokal <rvokal@redhat.com> 2.6.13-2
- upgrade to iproute2-050816
* Thu Aug 11 2005 Radek Vokal <rvokal@redhat.com> 2.6.13-1
- update to snapshot for 2.6.13+ kernel
* Tue May 24 2005 Radek Vokal <rvokal@redhat.com> 2.6.11-2
- removed useless initvar patch (#150798)
- new upstream source
* Tue Mar 15 2005 Radek Vokal <rvokal@redhat.com> 2.6.11-1
- update to iproute-2.6.11
* Fri Mar 04 2005 Radek Vokal <rvokal@redhat.com> 2.6.10-2
- gcc4 rebuilt
* Wed Feb 16 2005 Radek Vokal <rvokal@redhat.com> 2.6.10-1
- update to iproute-2.6.10
* Thu Dec 23 2004 Radek Vokal <rvokal@redhat.com> 2.6.9-6
- added arpd into sbin
* Mon Nov 29 2004 Radek Vokal <rvokal@redhat.com> 2.6.9-5
- debug info removed from makefile and from spec (#140891)
* Tue Nov 16 2004 Radek Vokal <rvokal@redhat.com> 2.6.9-4
- source file updated from snapshot version
- endian patch adding <endian.h>
* Sat Sep 18 2004 Joshua Blanton <jblanton@cs.ohiou.edu> 2.6.9-3
- added installation of netem module for tc
* Mon Sep 06 2004 Radek Vokal <rvokal@redhat.com> 2.6.9-2
- fixed possible buffer owerflow, path by Steve Grubb <linux_4ever@yahoo.com>
* Wed Sep 01 2004 Radek Vokal <rvokal@redhat.com> 2.6.9-1
- updated to iproute-2.6.9, spec file change, patches cleared
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed May 26 2004 Phil Knirsch <pknirsch@redhat.com> 2.4.7-16
- Took tons of manpages from debian, much more complete (#123952).
* Thu May 06 2004 Phil Knirsch <pknirsch@redhat.com> 2.4.7-15
- rebuilt
* Thu May 06 2004 Phil Knirsch <pknirsch@redhat.com> 2.4.7-13.2
- Built security errata version for FC1.
* Wed Apr 21 2004 Phil Knirsch <pknirsch@redhat.com> 2.4.7-14
- Fixed -f option for ss (#118355).
- Small description fix (#110997).
- Added initialization of some vars (#74961).
- Added patch to initialize "default" rule as well (#60693).
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Nov 05 2003 Phil Knirsch <pknirsch@redhat.com> 2.4.7-12
- Security errata for netlink (CAN-2003-0856).
* Thu Oct 23 2003 Phil Knirsch <pknirsch@redhat.com>
- Updated to latest version. Used by other distros, so seems stable. ;-)
- Quite a few patches needed updating in that turn.
- Added ss (#107363) and several other new nifty tools.
* Tue Jun 17 2003 Phil Knirsch <pknirsch@redhat.com>
- rebuilt
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
- rebuilt
* Thu Jan 16 2003 Phil Knirsch <pknirsch@redhat.com> 2.4.7-7
- Added htb3-tc patch from http://luxik.cdi.cz/~devik/qos/htb/ (#75486).
* Fri Oct 11 2002 Bill Nottingham <notting@redhat.com> 2.4.7-6
- remove flags patch at author's request
* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Wed Jun 19 2002 Phil Knirsch <pknirsch@redhat.com> 2.4.7-4
- Don't forcibly strip binaries
* Mon May 27 2002 Phil Knirsch <pknirsch@redhat.com> 2.4.7-3
- Fixed missing diffserv and atm support in config (#57278).
- Fixed inconsistent numeric base problem for command line (#65473).
* Tue May 14 2002 Phil Knirsch <pknirsch@redhat.com> 2.4.7-2
- Added patch to fix crosscompiling by Adrian Linkins.
* Fri Mar 15 2002 Phil Knirsch <pknirsch@redhat.com> 2.4.7-1
- Update to latest stable release 2.4.7-now-ss010824.
- Added simple man page for ip.
* Wed Aug 8 2001 Bill Nottingham <notting@redhat.com>
- allow setting of allmulti & promisc flags (#48669)
* Mon Jul 02 2001 Than Ngo <than@redhat.com>
- fix build problem in beehive if kernel-sources is not installed
* Fri May 25 2001 Helge Deller <hdeller@redhat.de>
- updated to iproute2-2.2.4-now-ss001007.tar.gz
- bzip2 source tar file
- "License" replaces "Copyright"
- added "BuildPrereq: tetex-latex tetex-dvips psutils"
- rebuilt for 7.2
* Tue May 1 2001 Bill Nottingham <notting@redhat.com>
- use the system headers - the included ones are broken
- ETH_P_ECHO went away
* Sat Jan 6 2001 Jeff Johnson <jbj@redhat.com>
- test for specific KERNEL_INCLUDE directories.
* Thu Oct 12 2000 Than Ngo <than@redhat.com>
- rebuild for 7.1
* Thu Oct 12 2000 Than Ngo <than@redhat.com>
- add default configuration files for iproute (Bug #10549, #18887)
* Tue Jul 25 2000 Jakub Jelinek <jakub@redhat.com>
- fix include-glibc/ to cope with glibc 2.2 new resolver headers
* Thu Jul 13 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Sun Jun 18 2000 Than Ngo <than@redhat.de>
- rebuilt in the new build environment
- use RPM macros
- handle RPM_OPT_FLAGS
* Sat Jun 03 2000 Than Ngo <than@redhat.de>
- fix iproute to build with new glibc
* Fri May 26 2000 Ngo Than <than@redhat.de>
- update to 2.2.4-now-ss000305
- add configuration files
* Mon Sep 13 1999 Bill Nottingham <notting@redhat.com>
- strip binaries
* Mon Aug 16 1999 Cristian Gafton <gafton@redhat.com>
- first build
%autochangelog

17
rt_dsfield.deprecated Normal file
View file

@ -0,0 +1,17 @@
# Deprecated values dropped upstream
# Kept in RHEL for backwards-compatibility
0x00 default
0x10 lowdelay
0x08 throughput
0x04 reliability
# This value overlap with ECT, do not use it!
0x02 mincost
# These values seems do not want to die, Cisco likes them by a strange reason.
0x20 priority
0x40 immediate
0x60 flash
0x80 flash-override
0xa0 critical
0xc0 internet
0xe0 network

View file

@ -1 +1,6 @@
SHA512 (iproute2-4.12.0.tar.xz) = 275147f71e7c4698654f0d6d0981ab42f6f108066508c15cfcd5d9e0d3aaf8d33291968d9f06cb03f5494d801cfabf8d53308aaf56fc4fa92c52b137e970a3b0
SHA512 (iproute2-6.8.0.tar.xz) = 54e50340a73c8810d69bfd54704b469149731634a97d94da08b5a305592a812131a441e5b646e32b480d61840e2ade29387e54b934effeee8ded4f06e557a5c0
SHA512 (iproute2-6.10.0.tar.xz) = 706479aa37a25fcf30c525c6abd85e0861e484d046e0636a28dbc52b958d45c9dba70b912f530dedd4b0b496e4b98969e23501bbbb41d3de50810bae014fcb41
SHA512 (iproute2-6.12.0.tar.xz) = dbd6afb8162a6086e4be9045b8dc53aa563bd4b7abaf43ee13cd7d493730ff0b90e6985f68c6f42d64f4af6a692d0589e0cefd2f24045ec1c10418cfb73940b2
SHA512 (iproute2-6.14.0.tar.xz) = e79049bdca0e0381f0a93a40e4d597ce59fb509dabc6e8b04a510ff9953f091c67577d6faa62967bd197bf62ab6e56d928558270a1390621431acb237b77fa46
SHA512 (iproute2-6.16.0.tar.xz) = 88930ea1a3a901594a69dc04e533bfd1de0f5b79f176dedb45f11f01035bd680edccc8e04e56d0922ee430580581c646473a3baa941254739878f7ab946f17df
SHA512 (iproute2-6.17.0.tar.xz) = 3d83d49233c1d984f15d285a46e2ec0eeb820c7cb84cfc84866921f37e8a57d31bc3953be07e8c79ed6079f326a25c3a85f591b0d67f9f689c0c70ccdb0fef77

View file

@ -0,0 +1,64 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/iproute/Sanity/bridge-utility
# Description: Test basic bridge funcionality
# Author: David Spurek <dspurek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/iproute/Sanity/bridge-utility
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: David Spurek <dspurek@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic bridge funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Requires: bridge-utils" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/bridge-utility
Description: Test basic bridge funcionality
Author: David Spurek <dspurek@redhat.com>

268
tests/bridge-utility/runtest.sh Executable file
View file

@ -0,0 +1,268 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/iproute/Sanity/bridge-utility
# Description: Test basic bridge funcionality
# Author: David Spurek <dspurek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
PACKAGES="$PACKAGE"
rlIsRHEL 6 && PACKAGES=( ${PACKAGES[@]} "bridge-utils" )
vxlan_name="testvxlan"
bridge_name="testbridge"
lsmod | grep dummy
dummy_loaded=$?
rlJournalStart
rlPhaseStartSetup
# Check reqiured packages.
for P in ${PACKAGES[@]}; do rlCheckRpm $P || rlDie "Package $P is missing"; done
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
no_dummy=0
if [ $dummy_loaded -eq 1 ] ; then
# dummy module doesn't loaded before the test
modprobe dummy numdummies=2
else
# dummy module loaded before the test, backup number of loaded dummy devices (nmdumies parameter), it is doesn't show under /sys/module/dummy/parameters
dummies_count=`ip a | grep dummy | tail -n 1 | sed -r 's/.*dummy([0-9]+).*/\1/'`
if [ -z $dummies_count] ; then
# dummy module is loaded but no dummy device exists
no_dummy=1
else
# get correct count, dummy0 is the first
let "dummies_count=$dummies_count+1"
fi
rmmod dummy
modprobe dummy numdummies=2
fi
rlRun "ip addr flush dev dummy0"
rlRun "ip link set dummy0 up"
rlRun "ip addr flush dev dummy1"
rlRun "ip link set dummy1 up"
rlRun "ip addr add 127.0.0.13/24 dev dummy0" 0 "Setting IPv4 address to
dummy0 interface"
rlRun "ip addr add 127.0.0.14/24 dev dummy1" 0 "Setting IPv4 address to
dummy1 interface"
rlPhaseEnd
rlPhaseStartTest "Test bridge fdb basic funcionality with vxlan device"
rlRun "ip link add $vxlan_name type vxlan id 10 group 239.0.0.10 ttl 4 dev dummy0" 0 "add vxlan interface"
rlRun "ip addr add 192.168.1.1/24 broadcast 192.168.1.255 dev $vxlan_name" 0 "setting address to vxlan interface"
rlRun "ip -d link show $vxlan_name" 0 "show details about vxlan device"
vxlan_ether_address=`ip -d link show $vxlan_name | grep link/ether | awk '{print $2}'`
echo "ethernet address of vxlan device is: $vxlan_ether_address"
# add new entry to bridge fdb database (device must by type vxlan)
rlRun "bridge fdb add $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name"
# check if entry was successfuly added
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.2" bridge_show.out "-i"
# try replace entry in bridge fdb database
rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.3 dev $vxlan_name"
# check if entry was successfuly changed
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.3" bridge_show.out "-i"
rlRun "bridge fdb del $vxlan_ether_address dev $vxlan_name"
# check if entry was successfuly deleted
# 'default' entry added by ip link command should be still listed
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertNotGrep "$vxlan_ether_address dst 192.19.0.2" bridge_show.out "-i"
rlAssertGrep "dst 239.0.0.10 via dummy0" bridge_show.out "-i"
# add new entry to bridge fdb database with port,vni and via options
rlRun "bridge fdb add $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name port 10000 vni 100 via dummy0"
# check if entry was successfuly added
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 port 10000 vni 100 via dummy0" bridge_show.out "-i"
rlRun "bridge fdb del $vxlan_ether_address dev $vxlan_name"
# add new entry to bridge fdb database with self option
rlRun "bridge fdb add $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name self"
# check if entry was successfuly added
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self" bridge_show.out "-i"
# replace entry in bridge fdb database with temp option
rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name temp"
# check if entry was successfuly changed
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self static" bridge_show.out "-i"
# replace entry in bridge fdb database with local option
rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name local"
# check if entry was successfuly changed
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self permanent" bridge_show.out "-i"
# replace entry in bridge fdb database with router option
rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name router"
# check if entry was successfuly changed
bridge fdb show dev $vxlan_name &> bridge_show.out
cat bridge_show.out
rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self router permanent" bridge_show.out "-i"
rlRun "bridge fdb del $vxlan_ether_address dev $vxlan_name"
rlRun "ip link del $vxlan_name" 0
rlPhaseEnd
rlPhaseStartTest "Test bridge fdb basic funcionality with bridge device, test bridge link set command"
# on rhels < 7 must be bridge device added with brctl (add type bridge is not supported)
rlIsRHEL '>=7' && rlRun "ip link add $bridge_name type bridge" 0 || rlRun "brctl addbr $bridge_name" 0
if rlIsRHEL '>=7'; then
rlRun "ip link set dummy0 master $bridge_name" 0 "Add dummy interface to bridge"
rlRun "bridge link show dev dummy0"
# test bridge link set, command is not supported on rhel < 7 (->ndo_bridge_setlink() is not in our kernel.)
rlRun "bridge link set dev dummy0 cost 10"
rlRun "bridge link show dev dummy0 &> bridge_show.out" 0
cat bridge_show.out
rlAssertGrep "dummy0.*cost 10 $" bridge_show.out "-i"
# add new entry to bridge fdb database with self option
rlRun "bridge fdb add 00:1b:21:55:23:61 dev dummy0 self"
bridge fdb show dev dummy0 &> bridge_show.out
cat bridge_show.out
rlAssertGrep "00:1b:21:55:23:61 self" bridge_show.out "-i"
# add new entry to bridge fdb database with master option
rlRun "bridge fdb add 00:1b:21:55:23:62 dev dummy0 master"
bridge fdb show dev dummy0 &> bridge_show.out
cat bridge_show.out
rlAssertGrep "00:1b:21:55:23:62 vlan 1" bridge_show.out "-i"
# add new entry to bridge fdb database with master and self options (entries for both should be added)
rlRun "bridge fdb add 00:1b:21:55:23:63 dev dummy0 self master"
bridge fdb show dev dummy0 &> bridge_show.out
cat bridge_show.out
rlAssertGrep "00:1b:21:55:23:63 self" bridge_show.out "-i"
rlAssertGrep "00:1b:21:55:23:63 vlan 1" bridge_show.out "-i"
else
rlRun "brctl addif $bridge_name dummy0" 0 "Add dummy interface to bridge"
rlRun "brctl show $bridge_name"
fi
rlIsRHEL '>=7' && rlRun "ip link set dummy0 nomaster" 0 "Remove dummy vlan interface from bridge" || rlRun "brctl delif $bridge_name dummy0" 0 "Remove dummy interface from bridge"
rlIsRHEL '>=7' && rlRun "ip link del $bridge_name" 0 || rlRun "brctl delbr $bridge_name" 0
rlPhaseEnd
rlPhaseStartTest "Test bridge vlan basic funcionality"
# on rhels < 7 must be bridge device added with brctl (add type bridge is not supported)
rlIsRHEL '>=7' && rlRun "ip link add $bridge_name type bridge" 0 || rlRun "brctl addbr $bridge_name" 0
rlRun "ip link add link dummy0 name dummy0.10 type vlan id 10"
if rlIsRHEL '>=7' ; then
rlRun "ip link set dummy0.10 master $bridge_name" 0 "Add dummy vlan interface to bridge"
rlRun "bridge link show dev dummy0.10"
else
rlRun "brctl addif $bridge_name dummy0.10" 0 "Add dummy vlan interface to bridge"
rlRun "brctl show $bridge_name"
fi
# bridge vlan is not supported on rhel < 6.8
if rlIsRHEL '>=7' || rlIsRHEL '>=6.8' || rlIsFedora; then
rlRun "bridge vlan add dev dummy0.10 vid 5" 0
else
rlRun "bridge vlan add dev dummy0.10 vid 5" 2
fi
# test correct funcionality only on rhel 7
if rlIsRHEL '>=7' ; then
bridge vlan &> bridge_vlan.out
cat bridge_vlan.out
#rlAssertGrep "dummy0.10.*5" bridge_vlan.out "-i"
#rlAssertGrep "dummy0.10.*10" bridge_vlan.out "-i"
rlRun "grep -A 2 'dummy0.10' bridge_vlan.out | grep '5'"
rlRun "bridge vlan del dev dummy0.10 vid 5"
bridge vlan &> bridge_vlan.out
cat bridge_vlan.out
#rlAssertNotGrep "dummy0.10" bridge_vlan.out "-i"
rlRun "grep -A 2 'dummy0.10' bridge_vlan.out | grep '5'" 1
fi
rlIsRHEL '>=7' && rlRun "ip link set dummy0.10 nomaster" 0 "Remove dummy vlan interface from bridge" || rlRun "brctl delif $bridge_name dummy0.10" 0 "Remove dummy vlan interface from bridge"
rlRun "ip link del dev dummy0.10"
rlIsRHEL '>=7' && rlRun "ip link del $bridge_name" 0 || rlRun "brctl delbr $bridge_name" 0
rlPhaseEnd
rlPhaseStartTest "Test bridge mdb basic funcionality"
rlRun "bridge mdb show" 0
rlPhaseEnd
if rlIsRHEL '>=7'; then
rlPhaseStartTest
rlRun "ip link add test_bridge type bridge"
rlRun "bridge fdb show | grep 'dev test_bridge' | grep 'master test_bridge'"
rlRun "ip link del test_bridge"
rlPhaseEnd
fi
rlPhaseStartCleanup
rlRun "ip route flush dev dummy0"
rlRun "ip link set dummy0 down"
rlRun "ip addr flush dev dummy0"
rlRun "ip route flush dev dummy1"
rlRun "ip link set dummy1 down"
rlRun "ip addr flush dev dummy1"
if [ $dummy_loaded -eq 1 ] ; then
rmmod dummy
else
rmmod dummy
if [ $no_dummy -eq 1 ] ; then
# load dummy module and delete dummy0 with ip link
modprobe dummy
rlIsRHEL '>=7' && rlRun "ip link del dummy0"
else
modprobe dummy numdummies=$dummies_count
fi
fi
rlRun "service network restart" 0,1 "Restarting network, just for sure"
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-address-label-sanity-test
# Description: Test basic ip address label funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-address-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip address label funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-address-label-sanity-test
Description: Test basic ip address label funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,89 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-address-label-sanity-test
# Description: Test basic ip addrlabel funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_dummy(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
class IPAddressLabelTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_dummy()
self.link_exists('dummy-test')
def tearDown(self):
self.del_dummy()
def test_add_address_label(self):
subprocess.call("ip addrlabel add prefix 2001:6f8:12d8:2::/64 label 200", shell=True)
subprocess.call("ip addrlabel add prefix 2001:6f8:900:8cbc::/64 label 300", shell=True)
subprocess.call("ip addrlabel add prefix 2001:4dd0:ff00:834::/64 label 200", shell=True)
subprocess.call("ip addrlabel add prefix 2a01:238:423d:8800::/64 label 300", shell=True)
output=subprocess.check_output(['ip', 'addrlabel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "prefix 2001:6f8:12d8:2::/64 label 200")
self.assertRegex(output, "prefix 2001:6f8:900:8cbc::/64 label 300")
self.assertRegex(output, "prefix 2001:4dd0:ff00:834::/64 label 200")
self.assertRegex(output, "prefix 2a01:238:423d:8800::/64 label 300")
subprocess.call("ip addrlabel del prefix 2001:6f8:12d8:2::/64 label 200", shell=True)
subprocess.call("ip addrlabel del prefix 2001:6f8:900:8cbc::/64 label 300", shell=True)
subprocess.call("ip addrlabel del prefix 2001:4dd0:ff00:834::/64 label 200", shell=True)
subprocess.call("ip addrlabel del prefix 2a01:238:423d:8800::/64 label 300", shell=True)
def test_add_address_label_dev(self):
subprocess.call("ip addrlabel add prefix 2001:6f8:12d8:2::/64 label 200 dev dummy-test", shell=True)
subprocess.call("ip addrlabel add prefix 2001:6f8:900:8cbc::/64 label 300 dev dummy-test", shell=True)
subprocess.call("ip addrlabel add prefix 2001:4dd0:ff00:834::/64 label 200 dev dummy-test", shell=True)
subprocess.call("ip addrlabel add prefix 2a01:238:423d:8800::/64 label 300 dev dummy-test", shell=True)
output=subprocess.check_output(['ip', 'addrlabel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "prefix 2001:6f8:12d8:2::/64 dev dummy-test label 200")
self.assertRegex(output, "prefix 2001:6f8:900:8cbc::/64 dev dummy-test label 300")
self.assertRegex(output, "prefix 2001:4dd0:ff00:834::/64 dev dummy-test label 200")
self.assertRegex(output, "prefix 2a01:238:423d:8800::/64 dev dummy-test label 300")
subprocess.call("ip addrlabel del prefix 2001:6f8:12d8:2::/64 label 200 dev dummy-test", shell=True)
subprocess.call("ip addrlabel del prefix 2001:6f8:900:8cbc::/64 label 300 dev dummy-test", shell=True)
subprocess.call("ip addrlabel del prefix 2001:4dd0:ff00:834::/64 label 200 dev dummy-test", shell=True)
subprocess.call("ip addrlabel del prefix 2a01:238:423d:8800::/64 label 300 dev dummy-test", shell=True)
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-address-label-sanity-test
# Description: Test basic ip address label funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-address-label-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip address label tests"
rlRun "/usr/bin/python3 /usr/bin/ip-address-label-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-address-label-tests.py"
rlLog "ip address label tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-address-sanity-test
# Description: Test basic ip address funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-address-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip address funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-address-sanity-test
Description: Test basic ip address funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,109 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-address-sanity-test
# Description: Test basic ip address funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_dummy(self):
""" Setup """
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
class IPAddressTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_dummy()
def tearDown(self):
self.del_dummy()
def test_add_address(self):
r = subprocess.call("ip address add 192.168.1.200/24 dev dummy-test", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, "192.168.1.200")
def test_add_broadcast_address_label(self):
r = subprocess.call("ip addr add 192.168.1.50/24 brd + dev dummy-test label dummy-test-Home", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, "192.168.1.50")
self.assertRegex(output, "192.168.1.255")
self.assertRegex(output, "dummy-test-Home")
def test_del_address(self):
r = subprocess.call("ip address add 192.168.1.200/24 dev dummy-test", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, "192.168.1.200")
r = subprocess.call("ip address del 192.168.1.200/24 dev dummy-test", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertNotRegex(output, "192.168.1.200")
def test_add_address_scope(self):
r = subprocess.call("ip address add 192.168.1.200/24 dev dummy-test scope host", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, "192.168.1.200")
self.assertRegex(output, "host")
def test_add_address_lifetime(self):
r = subprocess.call("ip address add 192.168.1.200/24 dev dummy-test valid_lft 1000 preferred_lft 500", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, "192.168.1.200")
self.assertRegex(output, "1000sec")
self.assertRegex(output, "500sec")
def test_add_ipv6_address(self):
r = subprocess.call("ip -6 addr add 2001:0db8:0:f101::1/64 dev dummy-test", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, "2001:db8:0:f101::1")
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-address-sanity-test
# Description: Test basic ip address funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-address-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip address tests"
rlRun "/usr/bin/python3 /usr/bin/ip-address-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-address-tests.py"
rlLog "ip address tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-fou-sanity-test
# Description: Test basic ip fou funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-address-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip fou funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-fou-sanity-test
Description: Test basic ip fou funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,74 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-fou-sanity-test
# Description: Test basic ip fou funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPFOUTests(unittest.TestCase):
def test_configure_fou_receive_port_gre(self):
''' Configure a FOU receive port for GRE bound to 7777'''
subprocess.call(" ip fou add port 7777 ipproto 47", shell=True)
output=subprocess.check_output(['ip', 'fou', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "port 7777 ipproto 47")
subprocess.call("ip fou del port 7777", shell=True)
def test_configure_fou_receive_port_ipip(self):
''' Configure a FOU receive port for IPIP bound to 8888'''
subprocess.call("ip fou add port 8888 ipproto 4", shell=True)
output=subprocess.check_output(['ip', 'fou', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "port 8888 ipproto 4")
subprocess.call("ip fou del port 8888", shell=True)
def test_configure_fou_receive_port_gue(self):
''' Configure a GUE receive port bound to 9999 '''
subprocess.call("ip fou add port 9999 gue", shell=True)
output=subprocess.check_output(['ip', 'fou', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "port 9999 gue")
subprocess.call("ip fou del port 9999", shell=True)
def test_configure_fou_with_ipip(self):
''' IP over UDP tunnel '''
subprocess.call("ip fou add port 9000 ipproto 4", shell=True)
output=subprocess.check_output(['ip', 'fou', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "port 9000 ipproto 4")
subprocess.call("ip link add name tunudp type ipip remote 192.168.2.2 local 192.168.2.1 ttl 225 encap fou encap-sport auto encap-dport 9000", shell=True)
output=subprocess.check_output(['ip', '-d', 'link', 'show', 'tunudp']).rstrip().decode('utf-8')
self.assertRegex(output, "encap fou")
subprocess.call("ip link del tunudp", shell=True)
subprocess.call("ip fou del port 9000", shell=True)
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,35 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-fou-sanity-test
# Description: Test basic ip address label funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "modprobe fou"
rlRun "cp ip-fou-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip fou tests"
rlRun "/usr/bin/python3 /usr/bin/ip-fou-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-fou-tests.py"
rlLog "ip fou tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-l2tp-sanity-test
# Description: Test basic ip l2tp funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-l2tp-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip l2tp funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-l2tp-sanity-test
Description: Test basic ip l2tp funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,149 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-l2tp-sanity-test
# Description: Test basic ip l2tp funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_veth(self):
subprocess.check_output(['ip', 'link', 'add', 'veth-test', 'type', 'veth', 'peer', 'name', 'test-peer'])
def del_veth(self):
subprocess.check_output(['ip', 'link', 'del', 'veth-test'])
def add_address(self, address, interface):
subprocess.check_output(['ip', 'address', 'add', address, 'dev', interface])
class IPL2tpTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_veth()
self.link_exists('veth-test')
self.add_address('192.168.11.12/24', 'veth-test')
self.add_address('192.168.11.13/24', 'test-peer')
def tearDown(self):
self.del_veth()
def test_add_l2tp_add_tunnel(self):
r = subprocess.call("ip l2tp add tunnel tunnel_id 3000 peer_tunnel_id 4000 encap udp local 192.168.11.12 remote 192.168.11.13 udp_sport 5000 udp_dport 6000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel', 'tunnel_id', '3000']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "From 192.168.11.12 to 192.168.11.13")
self.assertRegex(output, "Peer tunnel 4000")
self.assertRegex(output, "UDP source / dest ports: 5000/6000")
r = subprocess.call("ip l2tp del tunnel tunnel_id 3000", shell=True)
self.assertEqual(r, 0)
def test_add_l2tp_add_tunnel_session(self):
r = subprocess.call("ip l2tp add tunnel tunnel_id 3000 peer_tunnel_id 4000 encap udp local 192.168.11.12 remote 192.168.11.13 udp_sport 5000 udp_dport 6000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel', 'tunnel_id', '3000']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "From 192.168.11.12 to 192.168.11.13")
self.assertRegex(output, "Peer tunnel 4000")
self.assertRegex(output, "UDP source / dest ports: 5000/6000")
r = subprocess.call(" ip l2tp add session tunnel_id 3000 session_id 1000 peer_session_id 2000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tunnel_id', '3000', 'session_id' ,'1000']).rstrip().decode('utf-8')
print(output)
r = subprocess.call("ip l2tp del session tunnel_id 3000 session_id 1000", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip l2tp del tunnel tunnel_id 3000", shell=True)
self.assertEqual(r, 0)
def test_setup_l2tp(self):
r = subprocess.call("ip l2tp add tunnel tunnel_id 3000 peer_tunnel_id 4000 encap udp local 192.168.11.12 remote 192.168.11.13 udp_sport 5000 udp_dport 6000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel', 'tunnel_id', '3000']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "From 192.168.11.12 to 192.168.11.13")
self.assertRegex(output, "Peer tunnel 4000")
self.assertRegex(output, "UDP source / dest ports: 5000/6000")
r = subprocess.call(" ip l2tp add session tunnel_id 3000 session_id 1000 peer_session_id 2000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tunnel_id', '3000', 'session_id' ,'1000']).rstrip().decode('utf-8')
print(output)
r = subprocess.call("ip l2tp add tunnel tunnel_id 4000 peer_tunnel_id 3000 encap udp local 192.168.11.13 remote 192.168.11.12 udp_sport 6000 udp_dport 5000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel', 'tunnel_id', '3000']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "From 192.168.11.13 to 192.168.11.12")
self.assertRegex(output, "Peer tunnel 4000")
self.assertRegex(output, "UDP source / dest ports: 6000/5000")
r = subprocess.call("ip l2tp add session tunnel_id 4000 session_id 2000 peer_session_id 1000", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tunnel_id', '4000', 'session_id' ,'2000']).rstrip().decode('utf-8')
print(output)
r = subprocess.call("ip link set l2tpeth0 up mtu 1488", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip link set l2tpeth0 up mtu 1488", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip addr add 10.42.1.1 peer 10.42.1.2 dev l2tpeth0", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip addr add 10.42.1.2 peer 10.42.1.1 dev l2tpeth1", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'link', 'show']).rstrip().decode('utf-8')
print(output)
output=subprocess.check_output(['ping', '10.42.1.2','-c', '5']).rstrip().decode('utf-8')
print(output)
r = subprocess.call("ip l2tp del session tunnel_id 3000 session_id 1000", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip l2tp del session tunnel_id 4000 session_id 2000", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip l2tp del tunnel tunnel_id 3000", shell=True)
self.assertEqual(r, 0)
r = subprocess.call("ip l2tp del tunnel tunnel_id 4000", shell=True)
self.assertEqual(r, 0)
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-l2tp-sanity-test
# Description: Test basic ip l2tp funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-l2tp-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip l2tp tests"
rlRun "/usr/bin/python3 /usr/bin/ip-l2tp-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-l2tp-tests.py"
rlLog "ip l2tp tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-link-sanity-test
# Description: Test basic ip link funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-link-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip link funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-link-sanity-test
Description: Test basic ip link funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,342 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-link-sanity-test
# Description: Test basic ip link funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def read_attr(self, link, attribute):
"""Read a link attributed from the sysfs."""
with open(os.path.join('/sys/class/net', link, attribute)) as f:
return f.readline().strip()
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
class IPLinkSetDevTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
""" Setup """
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
def tearDown(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_set_dev_mtu(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'mtu', '9000'])
self.assertEqual('9000', self.read_attr('dummy-test', 'mtu'))
def test_set_dev_up_down(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'up'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, 'UP,LOWER_UP')
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'down'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertNotRegex(output, 'UP,LOWER_UP')
def test_set_dev_address(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'address', '02:01:02:03:04:08'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, 'link/ether 02:01:02:03:04:08')
def test_set_dev_alias(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'alias', 'test-test'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, 'test-test')
def test_set_dev_name(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'name', 'test-test'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'test-test']).rstrip().decode('utf-8')
self.assertRegex(output, 'test-test')
subprocess.check_output(['ip', 'link', 'set', 'dev', 'test-test', 'name', 'dummy-test'])
def test_set_dev_multicast(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'multicast', 'on'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, 'MULTICAST')
def test_set_dev_all_multicast(self):
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'allmulticast', 'on'])
output=subprocess.check_output(['ip', 'link', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
self.assertRegex(output, 'ALLMULTI')
class IPLinkKindTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
""" Setup """
pass
def tearDown(self):
pass
def test_add_veth_pair(self):
subprocess.check_output(['ip', 'link', 'add', 'veth-test', 'type', 'veth', 'peer', 'name', 'veth-peer-test'])
self.link_exists('veth-test')
self.link_exists('veth-peer-test')
subprocess.check_output(['ip', 'link', 'del', 'veth-test'])
def test_add_dummy(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_add_vcan(self):
subprocess.check_output(['ip', 'link', 'add', 'vcan-test', 'type', 'vcan'])
self.link_exists('vcan-test')
subprocess.check_output(['ip', 'link', 'del', 'vcan-test'])
def test_add_vxcan(self):
subprocess.check_output(['ip', 'link', 'add', 'vxcan-test', 'type', 'vxcan'])
self.link_exists('vxcan-test')
subprocess.check_output(['ip', 'link', 'del', 'vxcan-test'])
def test_add_vlan(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'name', 'vlantest.100', 'type', 'vlan', 'id', '100'])
self.link_exists('vlantest.100')
subprocess.check_output(['ip', 'link', 'del', 'vlantest.100'])
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_add_macvlan(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'macvlan-test', 'type', 'macvlan', 'mode', 'bridge'])
self.link_exists('macvlan-test')
subprocess.check_output(['ip', 'link', 'del', 'macvlan-test'])
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_add_macvtap(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'macvtap-test', 'type', 'macvtap', 'mode', 'bridge'])
self.link_exists('macvtap-test')
subprocess.check_output(['ip', 'link', 'del', 'macvtap-test'])
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_add_bridge(self):
subprocess.check_output(['ip', 'link', 'add', 'bridge-test', 'type', 'bridge'])
self.link_exists('bridge-test')
subprocess.check_output(['ip', 'link', 'del', 'bridge-test'])
def test_add_bond(self):
subprocess.check_output(['ip', 'link', 'add', 'bond-test', 'type', 'bond'])
self.link_exists('bond-test')
subprocess.check_output(['ip', 'link', 'del', 'bond-test'])
def test_add_team(self):
subprocess.check_output(['ip', 'link', 'add', 'team-test', 'type', 'team'])
self.link_exists('team-test')
subprocess.check_output(['ip', 'link', 'del', 'team-test'])
def test_add_ipip_tunnel(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'test-ipiptun', 'mode', 'ipip', 'remote', '10.3.3.3', 'local', '10.4.4.4', 'ttl' ,'64'])
self.link_exists('test-ipiptun')
subprocess.check_output(['ip', 'link', 'del', 'test-ipiptun'])
def test_add_gre_tunnel(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'test-gretun', 'mode', 'gre', 'remote', '10.3.3.3', 'local', '10.4.4.4', 'ttl' ,'64'])
self.link_exists('test-gretun')
subprocess.check_output(['ip', 'link', 'del', 'test-gretun'])
def test_add_gretap_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'test-gretap', 'type', 'gretap', 'remote', '10.3.3.3', 'local', '10.4.4.4'])
self.link_exists('test-gretap')
subprocess.check_output(['ip', 'link', 'del', 'test-gretap'])
def test_add_ip6gre_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'test-ip6gre', 'type', 'ip6gre', 'remote', '2a00:ffde:4567:edde::4987', 'local', '2001:473:fece:cafe::5179'])
self.link_exists('test-ip6gre')
subprocess.check_output(['ip', 'link', 'del', 'test-ip6gre'])
def test_add_ip6gretap_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'test-ip6gretap', 'type', 'ip6gretap', 'remote', '2a00:ffde:4567:edde::4987', 'local', '2001:473:fece:cafe::5179'])
self.link_exists('test-ip6gretap')
subprocess.check_output(['ip', 'link', 'del', 'test-ip6gretap'])
def test_add_erspan_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'dev', 'test-erspan', 'type', 'erspan', 'seq', 'key', '100','erspan', '123', 'remote', '10.3.3.3', 'local', '10.4.4.4'])
self.link_exists('test-erspan')
subprocess.check_output(['ip', 'link', 'del', 'test-erspan'])
def test_add_ip6erspan_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'dev', 'test-ip6erspan', 'type', 'erspan', 'seq', 'key', '101','erspan', '1234', 'remote', '10.3.3.3', 'local', '10.4.4.4'])
self.link_exists('test-ip6erspan')
subprocess.check_output(['ip', 'link', 'del', 'test-ip6erspan'])
def test_add_sit_tunnel(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'test-sittun', 'mode', 'sit', 'remote', '10.3.3.3', 'local', '10.4.4.4', 'ttl' ,'64'])
self.link_exists('test-sittun')
subprocess.check_output(['ip', 'link', 'del', 'test-sittun'])
def test_add_vti_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'dev', 'test-vtitun', 'type', 'vti', 'remote', '10.3.3.3', 'local', '10.4.4.4'])
self.link_exists('test-vtitun')
subprocess.check_output(['ip', 'link', 'del', 'test-vtitun'])
def test_add_geneve_tunnel(self):
subprocess.check_output(['ip', 'link', 'add', 'dev', 'test-geneve-tun', 'type', 'geneve', 'remote', '10.3.3.3', 'vni', '1234'])
self.link_exists('test-geneve-tun')
subprocess.check_output(['ip', 'link', 'del', 'test-geneve-tun'])
def test_add_ipvlan(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'name', 'test-ipvlan', 'type', 'ipvlan'])
self.link_exists('test-ipvlan')
subprocess.check_output(['ip', 'link', 'del', 'test-ipvlan'])
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'name', 'test-ipvlan', 'type', 'ipvlan','mode', 'l2', 'bridge'])
self.link_exists('test-ipvlan')
subprocess.check_output(['ip', 'link', 'del', 'test-ipvlan'])
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'name', 'test-ipvlan', 'type', 'ipvlan','mode', 'l2', 'private'])
self.link_exists('test-ipvlan')
subprocess.check_output(['ip', 'link', 'del', 'test-ipvlan'])
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'name', 'test-ipvlan', 'type', 'ipvlan','mode', 'l2', 'vepa'])
self.link_exists('test-ipvlan')
subprocess.check_output(['ip', 'link', 'del', 'test-ipvlan'])
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_add_vxlan(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'add', 'vxlan-test', 'type', 'vxlan', 'id', '42', 'group', '239.1.1.1', 'dev', 'dummy-test' ,'dstport', '4789'])
self.link_exists('vxlan-test')
subprocess.check_output(['ip', 'link', 'del', 'vxlan-test'])
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def test_add_vrf(self):
subprocess.check_output(['ip', 'link', 'add', 'vrf-test', 'type', 'vrf', 'table', '10'])
self.link_exists('vrf-test')
subprocess.check_output(['ip', 'link', 'del', 'vrf-test'])
def test_add_macsec(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'add', 'link', 'dummy-test', 'test-macsec', 'type', 'macsec'])
self.link_exists('test-macsec')
subprocess.check_output(['ip', 'macsec', 'add', 'test-macsec', 'tx', 'sa', '0', 'pn', '1', 'on', 'key', '02', '09876543210987654321098765432109'])
subprocess.check_output(['ip', 'macsec', 'add', 'test-macsec', 'rx', 'address', '56:68:a5:c2:4c:14', 'port', '1'])
subprocess.check_output(['ip', 'macsec', 'add', 'test-macsec', 'rx', 'address', '56:68:a5:c2:4c:14', 'port', '1', 'sa', '0', 'pn', '1', 'on', 'key', '01', '12345678901234567890123456789012'])
subprocess.check_output(['ip', 'link', 'del', 'test-macsec'])
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-link-sanity-test
# Description: Test basic ip link funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-link-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip link tests"
rlRun "/usr/bin/python3 /usr/bin/ip-link-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-link-tests.py"
rlLog "ip link tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/iproute/Sanity/ip-neigh-sanity-test
# Description: Test basic ip neigh functionality
# Author: Jaroslav Aster <jaster@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/iproute/Sanity/ip-neigh-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Jaroslav Aster <jaster@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip neigh funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-neigh-sanity-test
Description: Test basic ip neigh funcionality
Author: Jaroslav Aster <jaster@redhat.com>

View file

@ -0,0 +1,234 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/iproute/Sanity/ip-neigh-sanity-test
# Description: Test basic ip neigh funcionality
# Author: Jaroslav Aster <jaster@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
TEST_IFACE="test-iface"
TEST_IP4_PREFIX="192.168.100"
TEST_IP6_PREFIX="2000::"
TEST_MAC_PREFIX="00:c0:7b:7d:00"
rlIsRHEL '>=7' && MAN_PAGE="ip-neighbour" || MAN_PAGE="ip"
MESSAGES="/var/log/messages"
TMP_MESSAGES="$(mktemp)"
create_dummy_iface()
{
rlRun "ip link add name ${TEST_IFACE} type dummy" 0 "Creating dummy interface: '${TEST_IFACE}'."
}
delete_dummy_iface()
{
rlRun "ip link del ${TEST_IFACE}" 0 "Removing dummy interface: '${TEST_IFACE}'."
rlRun "rmmod dummy" 0,1 "Removing dummy module."
}
rlJournalStart
rlPhaseStartSetup
rlCheckRpm "$PACKAGE"
create_dummy_iface
rlPhaseEnd
if rlIsRHEL '>=7'; then
rlPhaseStartTest
for word in add del change replace show flush all proxy to dev nud unused permanent reachable probe failed incomplete stale delay noarp none; do
if ! { [ "$word" = "unused" ] || [ "$word" = "all" ]; }; then
rlRun "ip n help 2>&1 | grep -e '[^[:alnum:]]${word}[^[:alnum:]]'" 0 "Checking there is '${word}' in ip neighbour help."
fi
rlRun "man ${MAN_PAGE} | col -b | grep -e '[^[:alnum:]]${word}[^[:alnum:]]'" 0 "Checking there is '${word}' in ${MAN_PAGE} man page."
done
rlPhaseEnd
fi
rlPhaseStartTest "Functional Test"
rlLogInfo "IPv4"
rlRun "ip neigh add ${TEST_IP4_PREFIX}.1 lladdr ${TEST_MAC_PREFIX}:c6 dev ${TEST_IFACE} nud permanent"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.1 | grep 'PERMANENT'"
rlRun "ip neigh add ${TEST_IP4_PREFIX}.2 lladdr ${TEST_MAC_PREFIX}:c7 dev ${TEST_IFACE}"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.2 | grep 'PERMANENT'"
rlRun "ip neigh add ${TEST_IP4_PREFIX}.3 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud noarp"
rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.3 | grep 'NOARP'"
rlRun "ip neigh add ${TEST_IP4_PREFIX}.4 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud noarp"
rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.4 | grep 'NOARP'"
rlRun "ip neigh add lladdr ${TEST_MAC_PREFIX}:ce dev ${TEST_IFACE} proxy ${TEST_IP4_PREFIX}.10"
rlIsRHEL ">=7" && rlRun "ip neigh show proxy | grep ${TEST_IP4_PREFIX}.10"
rlRun "test $(ip neigh show dev ${TEST_IFACE} | wc -l) -eq 2" 0 "There are two items in neighbours."
rlRun "ip neigh del ${TEST_IP4_PREFIX}.1 dev ${TEST_IFACE}"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.1 | grep 'FAILED'"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.2 lladdr ${TEST_MAC_PREFIX}:ca dev ${TEST_IFACE} nud reachable"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.2 | grep 'REACHABLE'"
rlRun "ip neigh replace ${TEST_IP4_PREFIX}.3 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud permanent"
rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.3 | grep 'PERMANENT'"
rlRun "test $(ip neigh show dev ${TEST_IFACE} nud permanent | wc -l) -eq 1" 0 "There is one permanent item in neighbours."
rlRun "test $(ip neigh show dev ${TEST_IFACE} nud reachable | wc -l) -eq 1" 0 "There is one reachable item in neighbours."
rlRun "test $(ip neigh show dev ${TEST_IFACE} nud noarp | wc -l) -eq 1" 0 "There is one noarp item in neighbours."
rlRun "test $(ip neigh show dev ${TEST_IFACE} nud failed | wc -l) -eq 1" 0 "There is one failed item in neighbours."
rlIsRHEL ">=7" && rlRun "test $(ip neigh show dev ${TEST_IFACE} proxy | wc -l) -eq 1" 0 "There is one proxy item in neighbours."
rlRun "test $(ip neigh show dev ${TEST_IFACE} | grep -e PERMANENT -e REACHABLE -e FAILED | wc -l) -eq 3" 0 "There are three permanent or reachable or failed items in neighbours."
rlRun "ip neigh show dev ${TEST_IFACE} unused"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE} nud delay"
rlRun "ip neigh flush ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE}"
rlRun "ip neigh show nud all | grep '${TEST_IP4_PREFIX}.4'"
rlRun "ip -s neigh flush ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE}"
rlRun "ip -s -s neigh flush ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE}"
rlRun "ip neigh add ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud permanent"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'PERMANENT'"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud reachable"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'REACHABLE'"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud probe"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'PROBE'"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud failed"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'FAILED'"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud incomplete"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'INCOMPLETE'"
rlRun "ip neigh replace ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud stale"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep '${TEST_MAC_PREFIX}:cb' | grep 'STALE'"
rlRun "ip neigh replace ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud delay"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep -e 'DELAY' -e 'PROBE'"
rlRun "ip neigh replace ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud noarp"
rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.11 | grep 'NOARP'"
rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud none"
rlRun "ip neigh show nud none | grep ${TEST_IP4_PREFIX}.11"
rlRun "ip neigh show ${TEST_IP4_PREFIX}.0/24"
rlLogInfo "IPv6"
rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}1 lladdr ${TEST_MAC_PREFIX}:c6 dev ${TEST_IFACE} nud permanent"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}1 | grep 'PERMANENT'"
rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}2 lladdr ${TEST_MAC_PREFIX}:c7 dev ${TEST_IFACE}"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}2 | grep 'PERMANENT'"
rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}3 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud noarp"
rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}3 | grep 'NOARP'"
rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}4 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud noarp"
rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}4 | grep 'NOARP'"
rlRun "ip -6 neigh add lladdr ${TEST_MAC_PREFIX}:ce dev ${TEST_IFACE} proxy ${TEST_IP6_PREFIX}10"
rlIsRHEL ">=7" && rlRun "ip -6 neigh show proxy | grep ${TEST_IP6_PREFIX}10"
rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} | wc -l) -eq 2" 0 "There are two items in neighbours."
rlRun "ip -6 neigh del ${TEST_IP6_PREFIX}1 dev ${TEST_IFACE}"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}1 | grep 'FAILED'"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}2 lladdr ${TEST_MAC_PREFIX}:ca dev ${TEST_IFACE} nud reachable"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}2 | grep 'REACHABLE'"
rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}3 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud permanent"
rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}3 | grep 'PERMANENT'"
rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud permanent | wc -l) -eq 1" 0 "There is one permanent item in neighbours."
rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud reachable | wc -l) -eq 1" 0 "There is one reachable item in neighbours."
rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud noarp | wc -l) -eq 1" 0 "There is one noarp item in neighbours."
rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud failed | wc -l) -eq 1" 0 "There is one failed item in neighbours."
rlIsRHEL ">=7" && rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} proxy | wc -l) -eq 1" 0 "There is one proxy item in neighbours."
rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} | grep -e PERMANENT -e REACHABLE -e FAILED | wc -l) -eq 3" 0 "There are three permanent or reachable or failed items in neighbours."
rlRun "ip -6 neigh show dev ${TEST_IFACE} unused"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE} nud delay"
rlRun "ip -6 neigh flush ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE}"
rlRun "ip -6 neigh show nud all | grep '${TEST_IP6_PREFIX}4'"
rlRun "ip -6 -s neigh flush ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE}"
rlRun "ip -6 -s -s neigh flush ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE}"
rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}11 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud permanent"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'PERMANENT'"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud reachable"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'REACHABLE'"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud probe"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'PROBE'"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud failed"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'FAILED'"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud incomplete"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'INCOMPLETE'"
rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}11 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud stale"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep '${TEST_MAC_PREFIX}:cb' | grep 'STALE'"
rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud delay"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep -e 'DELAY' -e 'PROBE'"
rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud noarp"
rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}11 | grep 'NOARP'"
rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud none"
rlRun "ip -6 neigh show nud none | grep ${TEST_IP6_PREFIX}11"
rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}0/24"
rlPhaseEnd
rlPhaseStartTest
pushd /tmp # because of coredump file
tail -f -n 0 "$MESSAGES" > "$TMP_MESSAGES" &
tail_pid="$!"
rlRun "ip neigh add ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:c16 dev ${TEST_IFACE} nud permanent" 1,255
kill "$tail_pid"
rlRun "grep -i -e 'segfault' -e 'unhandled signal' -e 'User process fault' ${TMP_MESSAGES}" 1 "Checking there is no segfault in /var/log/messages."
popd
rlPhaseEnd
rlPhaseStartCleanup
delete_dummy_iface
rlRun "rm ${TMP_MESSAGES}" 0 "Removing tmp files and dirs."
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-neighbor-sanity-test
# Description: Test basic ip neighbor funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-neighbor-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip neighbor funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-neighbor-sanity-test
Description: Test basic ip neighbor funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,74 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-neighbour-sanity-test
# Description: Test basic ip neighbour funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_dummy(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
class IPNeighborTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_dummy()
self.link_exists('dummy-test')
def tearDown(self):
self.del_dummy()
def test_add_neighbor(self):
subprocess.call("ip neighbor add 192.168.100.1 lladdr 00:c0:7b:7d:00:c8 dev dummy-test nud permanent", shell=True)
output=subprocess.check_output(['ip', 'neighbour', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "192.168.100.1 lladdr 00:c0:7b:7d:00:c8 PERMANENT")
subprocess.call("ip neighbor del 192.168.100.1 dev dummy-test", shell=True)
def test_replace_neighbor(self):
subprocess.call("ip neighbor add 192.168.99.254 lladdr 00:80:c8:27:69:2d dev dummy-test", shell=True)
output=subprocess.check_output(['ip', 'neighbour', 'show', 'dev', 'dummy-test']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "192.168.99.254 lladdr 00:80:c8:27:69:2d PERMANENT")
subprocess.call("ip neighbor change 192.168.99.254 lladdr 00:80:c8:27:69:2d dev dummy-test", shell=True)
print(output)
self.assertRegex(output, "192.168.99.254 lladdr 00:80:c8:27:69:2d PERMANENT")
subprocess.call("ip neighbor del 192.168.99.254 dev dummy-test", shell=True)
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-neighbor-sanity-test
# Description: Test basic ip neighbor funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-neighbor-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip neighbor tests"
rlRun "/usr/bin/python3 /usr/bin/ip-neighbor-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-neighbor-tests.py"
rlLog "ip neighbor tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-netns-sanity-test
# Description: Test basic ip netns funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-ns-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip netns funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-netns-sanity-test
Description: Test basic ip netns funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,118 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-netns-sanity-test
# Description: Test basic ip netns funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class GenericUtilities():
def path_exists(self, path):
self.assertTrue(os.path.exists(os.path.join('/var/run/netns', path)))
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_veth(self):
subprocess.check_output(['ip', 'link', 'add', 'veth-test', 'type', 'veth', 'peer', 'name', 'test-peer'])
def del_veth(self):
subprocess.check_output(['ip', 'link', 'del', 'veth-test'])
def add_dummy(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
class IPNsTests(unittest.TestCase, GenericUtilities):
def test_add_ns(self):
subprocess.check_output(['ip', 'netns', 'add', 'net-ns-test'])
self.path_exists('net-ns-test')
output=subprocess.check_output(['ip', 'netns', 'list']).rstrip().decode('utf-8')
self.assertRegex(output, "net-ns-test")
self.addCleanup(subprocess.call, ['ip', 'netns', 'del', 'net-ns-test'])
def test_add_dummy_interface_to_ns(self):
self.add_dummy()
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'netns', 'add', 'net-ns-test'])
self.path_exists('net-ns-test')
output=subprocess.check_output(['ip', 'netns', 'list']).rstrip().decode('utf-8')
self.assertRegex(output, "net-ns-test")
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'netns', 'net-ns-test'])
output=subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'link', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "dummy-test")
self.addCleanup(subprocess.call, ['ip', 'netns', 'del', 'net-ns-test'])
self.addCleanup(subprocess.call, ['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'link', 'del', 'dummy-test'])
def test_add_veth_interface_to_ns(self):
self.add_veth()
self.link_exists('veth-test')
subprocess.check_output(['ip', 'netns', 'add', 'net-ns-test'])
self.path_exists('net-ns-test')
output=subprocess.check_output(['ip', 'netns', 'list']).rstrip().decode('utf-8')
self.assertRegex(output, "net-ns-test")
subprocess.check_output(['ip', 'link', 'set', 'dev', 'test-peer', 'netns', 'net-ns-test'])
output=subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'link', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "test-peer")
# Setup IP address of veth-test.
subprocess.check_output(['ip', 'addr', 'add', '10.200.1.1/24', 'dev', 'veth-test'])
subprocess.check_output(['ip', 'link', 'set', 'veth-test', 'up'])
# Setup IP address of v-peer1.
subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'addr', 'add',' 10.200.1.2/24', 'dev', 'test-peer'])
subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'link', 'set', 'test-peer', 'up'])
subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'link', 'set', 'lo', 'up'])
output=subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'addr', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "test-peer")
self.assertRegex(output, "lo: <LOOPBACK,UP,LOWER_UP>")
self.assertRegex(output, "inet 10.200.1.2/24")
output=subprocess.check_output(['ip', 'netns', 'exec', 'net-ns-test', 'ping', '10.200.1.1', '-c', '5']).rstrip().decode('utf-8')
print(output)
self.addCleanup(subprocess.call, ['ip', 'netns', 'del', 'net-ns-test'])
self.addCleanup(subprocess.call, ['ip', 'netns', 'exec', 'net-ns-test', 'ip', 'link', 'del', 'test-peer'])
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-Licenetnse-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-netns-sanity-test
# Description: Test basic ip netns funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-netns-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip netns tests"
rlRun "/usr/bin/python3 /usr/bin/ip-netns-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-netns-tests.py"
rlLog "ip netns tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-route-sanity-test
# Description: Test basic ip route funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-route-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip route funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-route-sanity-test
Description: Test basic ip route funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,110 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-route-sanity-test
# Description: Test basic ip route funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_dummy(self):
""" Setup """
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
subprocess.check_output(['ip', 'link', 'set', 'dev', 'dummy-test', 'up'])
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
class IPRouteTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_dummy()
def tearDown(self):
self.del_dummy()
def test_add_route(self):
subprocess.check_output(['ip', 'route', 'add', '192.168.1.0/24', 'dev', 'dummy-test'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "192.168.1.0/24 dev dummy-test scope link")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24', 'dev', 'dummy-test'])
def test_add_route_table(self):
subprocess.check_output(['ip', 'route', 'add', 'table', '555', '192.168.1.0/24', 'dev', 'dummy-test'])
output=subprocess.check_output(['ip', 'route', 'show', 'table', '555']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "192.168.1.0/24 dev dummy-test scope link")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24', 'dev', 'dummy-test', 'table', '555'])
def test_add_blackhole(self):
subprocess.check_output(['ip', 'route', 'add', 'blackhole', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "blackhole 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
def test_add_unreachable(self):
subprocess.check_output(['ip', 'route', 'add', 'unreachable', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "unreachable 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
def test_add_prohibit(self):
subprocess.check_output(['ip', 'route', 'add', 'prohibit', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "prohibit 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
def test_add_throw(self):
subprocess.check_output(['ip', 'route', 'add', 'throw', '192.168.1.0/24'])
output=subprocess.check_output(['ip', 'route', 'show']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "throw 192.168.1.0/24")
subprocess.check_output(['ip', 'route', 'delete', '192.168.1.0/24'])
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-route-sanity-test
# Description: Test basic ip route funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-route-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip route tests"
rlRun "/usr/bin/python3 /usr/bin/ip-route-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-route-tests.py"
rlLog "ip route tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/iproute/Sanity/ip-rule-sanity-test
# Description: Test basic ip rule functionality
# Author: Jaroslav Aster <jaster@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/iproute/Sanity/ip-rule-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Jaroslav Aster <jaster@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip rule funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-rule-sanity-test
Description: Test basic ip rule funcionality
Author: Jaroslav Aster <jaster@redhat.com>

View file

@ -0,0 +1,107 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/iproute/Sanity/ip-rule-sanity-test
# Description: Test basic ip rule funcionality
# Author: Jaroslav Aster <jaster@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
DEFAULT_IFACE="$(ip route show | grep default | sed 's/.*dev \([^ ]\+\) .*/\1/' | head -n 1)"
rlIsRHEL '>=7' && IP_RULE_MANPAGE="ip-rule" || IP_RULE_MANPAGE="ip"
rlJournalStart
rlPhaseStartSetup
rlCheckRpm "$PACKAGE"
rlPhaseEnd
rlPhaseStartTest "Basic sanity test"
rlRun "ip rule list"
rlRun "ip rule add from 172.29.0.0/24 to 172.29.1.0/24 table 1110"
rlRun "ip rule add not from 172.29.0.0/24 to 172.29.1.0/24 table 1111"
rlRun "ip -6 rule add from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32 table 1111"
rlIsRHEL '>=7' && rlRun "ip rule add oif ${DEFAULT_IFACE} table 1111"
rlRun "ip rule add iif ${DEFAULT_IFACE} tos 10 table 1112"
rlRun "ip rule add fwmark 123 pref 100 table 1112"
rlRun "ip rule add not fwmark 124 pref 101 unreachable"
rlRun "ip rule add fwmark 125 pref 102 prohibit"
rlRun "ip rule add fwmark 126 pref 103 unicast"
rlRun "ip rule add from 172.29.2.0/24 tos 10 blackhole"
rlRun "ip rule add from 172.29.0.0/24 tos 6 prio 99 goto 103"
rlRun "ip rule list"
rlRun "ip rule list | grep 'from 172.29.0.0/24 to 172.29.1.0/24'"
rlRun "ip rule list | grep 'not from 172.29.0.0/24 to 172.29.1.0/24'"
rlRun "ip -6 rule list | grep 'from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32'"
rlIsRHEL '>=7' && rlRun "ip rule list | grep 'oif ${DEFAULT_IFACE}'"
! rlIsFedora && rlRun "ip rule list | grep 'tos lowdelay iif ${DEFAULT_IFACE}'"
rlRun "ip rule list | grep 'from all fwmark 0x7b'"
rlRun "ip rule list | grep 'not from all fwmark 0x7c unreachable'"
rlRun "ip rule list | grep 'from all fwmark 0x7d prohibit'"
rlRun "ip rule list | grep 'from all fwmark 0x7e'"
! rlIsFedora && rlRun "ip rule list | grep 'from 172.29.2.0/24 tos lowdelay blackhole'"
rlRun "ip rule list | grep 'from 172.29.0.0/24 tos 0x06 goto 103'"
rlRun "ip rule list"
rlRun "ip rule del from 172.29.0.0/24 to 172.29.1.0/24"
rlRun "ip rule del not from 172.29.0.0/24 to 172.29.1.0/24"
rlRun "ip -6 rule del from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32"
rlIsRHEL '>=7' && rlRun "ip rule del oif ${DEFAULT_IFACE}"
! rlIsFedora && rlRun "ip rule del iif ${DEFAULT_IFACE} tos lowdelay"
rlRun "ip rule del fwmark 123 pref 100"
rlRun "ip rule del not fwmark 124 pref 101 unreachable"
rlRun "ip rule del fwmark 125 pref 102 prohibit"
rlRun "ip rule del fwmark 126 pref 103 unicast"
rlRun "ip rule del from 172.29.2.0/24 tos 10 blackhole"
rlRun "ip rule del from 172.29.0.0/24 tos 6 prio 99 goto 103"
rlRun "ip rule list"
rlPhaseEnd
if rlIsRHEL '>=7'; then
rlPhaseStartTest
saved_rule=$(ip rule list | grep '^0' | cut -d : -f 2 | head -n 1)
rlRun "ip rule del prio 0" 0 "Removing rule with prio 0."
rlRun "ip rule add prio 0 ${saved_rule}" 0 "Re-creating rule with prio 0."
rlRun "man ${IP_RULE_MANPAGE} | col -b | grep 'Rule 0 is special. It cannot be deleted or overridden.'" 1
rlPhaseEnd
fi
rlPhaseStartTest
rlRun "man ${IP_RULE_MANPAGE} | col -b | grep 'reject'" 1
rlRun "ip rule help 2>&1 | grep 'reject'" 1
rlPhaseEnd
rlPhaseStartCleanup
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-token-sanity-test
# Description: Test basic ip token funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-token-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip token funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-token-sanity-test
Description: Test basic ip token funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,59 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-token-sanity-test
# Description: Test basic ip token funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
def add_veth(self):
subprocess.check_output(['ip', 'link', 'add', 'veth-test', 'type', 'veth', 'peer', 'name', 'test-peer'])
def del_veth(self):
subprocess.check_output(['ip', 'link', 'del', 'veth-test'])
class IPTokenTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_veth()
self.link_exists('veth-test')
def tearDown(self):
self.del_veth()
def test_add_token(self):
r = subprocess.call("ip token set ::1a:2b:3c:4d/64 dev veth-test", shell=True)
self.assertEqual(r, 0)
output=subprocess.check_output(['ip', 'token', 'get', 'dev', 'veth-test']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "token ::1a:2b:3c:4d dev veth-test")
r = subprocess.call("ip token del ::1a:2b:3c:4d/64 dev veth-test", shell=True)
self.assertEqual(r, 0)
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-token-sanity-test
# Description: Test basic ip token funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-token-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip token tests"
rlRun "/usr/bin/python3 /usr/bin/ip-token-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-token-tests.py"
rlLog "ip token tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-tunnel-sanity-test
# Description: Test basic ip tunnel funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-tunnel-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip tunnel funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-tunnel-sanity-test
Description: Test basic ip tunnel funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,104 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-tunnel-sanity-test
# Description: Test basic ip tunnel funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def add_dummy(self):
subprocess.check_output(['ip', 'link', 'add', 'dummy-test', 'type', 'dummy'])
self.link_exists('dummy-test')
def del_dummy(self):
subprocess.check_output(['ip', 'link', 'del', 'dummy-test'])
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
class IPTunnelTests(unittest.TestCase, IPLinkUtilities):
def setUp(self):
self.add_dummy()
self.link_exists('dummy-test')
def tearDown(self):
self.del_dummy()
def test_add_ipip(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'ipiptun-test', 'mode', 'ipip', 'local', '10.3.3.3', 'remote', '10.4.4.4', 'ttl', '64', 'dev', 'dummy-test'])
self.link_exists('ipiptun-test')
output=subprocess.check_output(['ip', 'tunnel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "ipiptun-test: ip/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64")
subprocess.check_output(['ip', 'link', 'del', 'ipiptun-test'])
def test_add_gre(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'gretun-test', 'mode', 'gre', 'local', '10.3.3.3', 'remote', '10.4.4.4', 'ttl', '64', 'dev', 'dummy-test'])
self.link_exists('gretun-test')
output=subprocess.check_output(['ip', 'tunnel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "gretun-test: gre/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64")
subprocess.check_output(['ip', 'link', 'del', 'gretun-test'])
def test_add_sit(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'sittun-test', 'mode', 'sit', 'local', '10.3.3.3', 'remote', '10.4.4.4', 'ttl', '64', 'dev', 'dummy-test'])
self.link_exists('sittun-test')
output=subprocess.check_output(['ip', 'tunnel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "sittun-test: ipv6/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64")
subprocess.check_output(['ip', 'link', 'del', 'sittun-test'])
def test_add_isatap(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'isatap-test', 'mode', 'sit', 'local', '10.3.3.3', 'remote', '10.4.4.4', 'ttl', '64', 'dev', 'dummy-test'])
self.link_exists('isatap-test')
output=subprocess.check_output(['ip', 'tunnel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "isatap-test: ipv6/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64")
subprocess.check_output(['ip', 'link', 'del', 'isatap-test'])
def test_add_vti(self):
subprocess.check_output(['ip', 'tunnel', 'add', 'vti-test', 'mode', 'sit', 'local', '10.3.3.3', 'remote', '10.4.4.4', 'ttl', '64', 'dev', 'dummy-test'])
self.link_exists('vti-test')
output=subprocess.check_output(['ip', 'tunnel']).rstrip().decode('utf-8')
print(output)
self.assertRegex(output, "vti-test: ipv6/ip remote 10.4.4.4 local 10.3.3.3 dev dummy-test ttl 64")
subprocess.check_output(['ip', 'link', 'del', 'vti-test'])
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-tunnel-sanity-test
# Description: Test basic ip tunnel funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-tunnel-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip tunnel tests"
rlRun "/usr/bin/python3 /usr/bin/ip-tunnel-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-tunnel-tests.py"
rlLog "ip tunnel tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

View file

@ -0,0 +1,47 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-tuntap-sanity-test
# Description: Test basic ip tuntap funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
export TEST=/CoreOS/iproute/Sanity/ip-tuntap-sanity-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Susant Sahani <susant@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test basic ip tuntap funcionality" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 15m" >> $(METADATA)
@echo "RunFor: iproute" >> $(METADATA)
@echo "Requires: iproute" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/iproute/Sanity/ip-tuntap-sanity-test
Description: Test basic ip tuntap funcionality
Author: Susant Sahani <susant@redhat.com>

View file

@ -0,0 +1,65 @@
#!/usr/bin/env python3
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-tuntap-sanity-test
# Description: Test basic ip tuntap funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
# ~~~
import errno
import os
import sys
import time
import unittest
import subprocess
import signal
import shutil
def setUpModule():
if shutil.which('ip') is None:
raise OSError(errno.ENOENT, 'ip not found')
class IPLinkUtilities():
def link_exists(self, link):
self.assertTrue(os.path.exists(os.path.join('/sys/class/net', link)))
class IPTuntapTests(unittest.TestCase, IPLinkUtilities):
def test_add_tap(self):
subprocess.check_output(['ip', 'tuntap', 'add', 'name', 'tap-test', 'mode', 'tap'])
self.link_exists('tap-test')
output=subprocess.check_output(['ip', 'tuntap', 'show', 'dev', 'tap-test']).rstrip().decode('utf-8')
self.assertRegex(output, "tap-test: tap")
subprocess.check_output(['ip', 'link', 'del', 'tap-test'])
def test_add_tun(self):
subprocess.check_output(['ip', 'tuntap', 'add', 'name', 'tun-test', 'mode', 'tun'])
self.link_exists('tun-test')
output=subprocess.check_output(['ip', 'tuntap', 'show', 'dev', 'tun-test']).rstrip().decode('utf-8')
self.assertRegex(output, "tun-test: tun")
subprocess.check_output(['ip', 'link', 'del', 'tun-test'])
def test_add_tun_user_group(self):
subprocess.check_output(['ip', 'tuntap', 'add', 'name', 'tun-test', 'mode', 'tun', 'user', 'root', 'group', 'root'])
self.link_exists('tun-test')
output=subprocess.check_output(['ip', 'tuntap', 'show', 'dev', 'tun-test']).rstrip().decode('utf-8')
self.assertRegex(output, "tun-test: tun")
self.assertRegex(output, "user 0 group 0")
subprocess.check_output(['ip', 'link', 'del', 'tun-test'])
if __name__ == '__main__':
unittest.main(testRunner=unittest.TextTestRunner(stream=sys.stdout,
verbosity=2))

View file

@ -0,0 +1,34 @@
#!/bin/bash
# SPDX-License-Identifier: LGPL-2.1+
# ~~~
# runtest.sh of /CoreOS/iproute/Sanity/ip-tuntap-sanity-test
# Description: Test basic ip tuntap funcionality
#
# Author: Susant Sahani <susant@redhat.com>
# Copyright (c) 2018 Red Hat, Inc.
#~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="iproute"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "cp ip-tuntap-tests.py /usr/bin"
rlPhaseEnd
rlPhaseStartTest
rlLog "ip tuntap tests"
rlRun "/usr/bin/python3 /usr/bin/ip-tuntap-tests.py"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm /usr/bin/ip-tuntap-tests.py"
rlLog "ip tuntap tests done"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
rlGetTestState

27
tests/tests.yml Normal file
View file

@ -0,0 +1,27 @@
---
# Tests that run in all contexts
- hosts: localhost
roles:
- role: standard-test-beakerlib
tags:
- classic
- atomic
tests:
- ip-neigh-sanity-test
- ip-rule-sanity-test
- bridge-utility
- ip-link-sanity-test
- ip-address-sanity-test
- ip-address-label-sanity-test
- ip-fou-sanity-test
- ip-token-sanity-test
- ip-tuntap-sanity-test
- ip-tunnel-sanity-test
- ip-l2tp-sanity-test
- ip-netns-sanity-test
- ip-route-sanity-test
- ip-neighbor-sanity-test
required_packages:
- iproute
- bridge-utils
- python3