Compare commits

..

6 commits

Author SHA1 Message Date
Phil Sutter
b0a6784237 Add further upstream suggested backports. 2018-02-13 18:59:37 +01:00
Phil Sutter
7257b9efe4 Rebase package on top of iproute2-4.14.1
- Add upstream suggested backports.
- Make use of %%autosetup macro.
2017-12-11 18:21:23 +01:00
Phil Sutter
9cac8d8147 Rebase package on top of iproute2-4.13.0 2017-09-20 00:54:38 +02:00
Phil Sutter
62d79125de Rebase package on top of iproute2-4.12.0 2017-09-20 00:53:22 +02:00
Phil Sutter
74656075ed Update gitignore and sources files for new package version 2017-05-23 15:28:29 +02:00
Phil Sutter
81a513ba3c Rebase package on top of iproute2-4.11.0 2017-05-23 15:28:20 +02:00
82 changed files with 1833 additions and 3160 deletions

14
.gitignore vendored
View file

@ -1,6 +1,8 @@
/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
/iproute2-4.7.0.tar.xz
/iproute2-4.8.0.tar.xz
/iproute2-4.9.0.tar.xz
/iproute2-4.10.0.tar.xz
/iproute2-4.11.0.tar.xz
/iproute2-4.12.0.tar.xz
/iproute2-4.13.0.tar.xz
/iproute2-4.14.1.tar.xz

View file

@ -0,0 +1,43 @@
From 34f2e1640c6d6a051116478011eb58f995a24076 Mon Sep 17 00:00:00 2001
From: Phil Sutter <psutter@redhat.com>
Date: Fri, 17 Mar 2017 22:47:27 +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 0000000000000..bef35201f4eab
--- /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 8565ccb4814aa..5a85bee6a4b7a 100644
--- a/man/man8/ss.8
+++ b/man/man8/ss.8
@@ -319,7 +319,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
@@ -374,7 +374,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.13.1

View file

@ -0,0 +1,38 @@
From 2706951bc0dad80596f172e9197452163bc9e067 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

@ -0,0 +1,50 @@
From 06ed8e1fc690683fb1226a23548c81b7032fe7fe Mon Sep 17 00:00:00 2001
From: Jiri Pirko <jiri@mellanox.com>
Date: Sat, 25 Nov 2017 11:07:56 +0100
Subject: [PATCH] tc: move action cookie print out of the stats if
Cookie print was made dependent on show_stats for no good reason. Fix
this bu pushing cookie print ot of the stats if.
Fixes: fd8b3d2c1b9b ("actions: Add support for user cookies")
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
(cherry picked from commit abff45b8026e24dedfe05376d8fedc1a8fe43402)
---
tc/m_action.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/tc/m_action.c b/tc/m_action.c
index 402228bbf833d..704708f70aaac 100644
--- a/tc/m_action.c
+++ b/tc/m_action.c
@@ -302,19 +302,18 @@ static int tc_print_one_action(FILE *f, struct rtattr *arg)
return err;
if (show_stats && tb[TCA_ACT_STATS]) {
-
fprintf(f, "\tAction statistics:\n");
print_tcstats2_attr(f, tb[TCA_ACT_STATS], "\t", NULL);
- if (tb[TCA_ACT_COOKIE]) {
- int strsz = RTA_PAYLOAD(tb[TCA_ACT_COOKIE]);
- char b1[strsz * 2 + 1];
-
- fprintf(f, "\n\tcookie len %d %s ", strsz,
- hexstring_n2a(RTA_DATA(tb[TCA_ACT_COOKIE]),
- strsz, b1, sizeof(b1)));
- }
fprintf(f, "\n");
}
+ if (tb[TCA_ACT_COOKIE]) {
+ int strsz = RTA_PAYLOAD(tb[TCA_ACT_COOKIE]);
+ char b1[strsz * 2 + 1];
+
+ fprintf(f, "\tcookie len %d %s\n", strsz,
+ hexstring_n2a(RTA_DATA(tb[TCA_ACT_COOKIE]),
+ strsz, b1, sizeof(b1)));
+ }
return 0;
}
--
2.13.1

View file

@ -0,0 +1,38 @@
From 305197a2378ffb581f1eca3ec804f76690be7b5a 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

View file

@ -0,0 +1,31 @@
From 903d2bee8c6f156790758f7e9131490b70475ecd Mon Sep 17 00:00:00 2001
From: Jiri Pirko <jiri@mellanox.com>
Date: Sat, 25 Nov 2017 11:07:57 +0100
Subject: [PATCH] tc: remove action cookie len from printout
Make the output same as input and avoid printout of unnecessary len.
Suggested-by: Stephen Hemminger <stephen@networkplumber.org>
Fixes: fd8b3d2c1b9b ("actions: Add support for user cookies")
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
(cherry picked from commit 81051c60c24ad083cfcb46271e6450675763c722)
---
tc/m_action.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tc/m_action.c b/tc/m_action.c
index 704708f70aaac..951ca973f4806 100644
--- a/tc/m_action.c
+++ b/tc/m_action.c
@@ -310,7 +310,7 @@ static int tc_print_one_action(FILE *f, struct rtattr *arg)
int strsz = RTA_PAYLOAD(tb[TCA_ACT_COOKIE]);
char b1[strsz * 2 + 1];
- fprintf(f, "\tcookie len %d %s\n", strsz,
+ fprintf(f, "\tcookie %s\n",
hexstring_n2a(RTA_DATA(tb[TCA_ACT_COOKIE]),
strsz, b1, sizeof(b1)));
}
--
2.13.1

View file

@ -0,0 +1,31 @@
From 6ecadd9b426bb05c31ec92c01e5352ac05d4e676 Mon Sep 17 00:00:00 2001
From: Phil Sutter <phil@nwl.cc>
Date: Tue, 28 Nov 2017 16:49:58 +0100
Subject: [PATCH] link_gre6: Detect invalid encaplimit values
Looks like a typo: get_u8() returns 0 on success and -1 on error, so the
error checking here was ineffective.
Fixes: a11b7b71a6eba ("link_gre6: really support encaplimit option")
Signed-off-by: Phil Sutter <phil@nwl.cc>
(cherry picked from commit 56708ae7c9535859223c5b68097b35bf0fae677c)
---
ip/link_gre6.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ip/link_gre6.c b/ip/link_gre6.c
index 7d07932a60f01..06dcd6756ec41 100644
--- a/ip/link_gre6.c
+++ b/ip/link_gre6.c
@@ -364,7 +364,7 @@ get_failed:
} else {
__u8 uval;
- if (get_u8(&uval, *argv, 0) < -1)
+ if (get_u8(&uval, *argv, 0))
invarg("invalid ELIM", *argv);
encap_limit = uval;
flags &= ~IP6_TNL_F_IGN_ENCAP_LIMIT;
--
2.13.1

View file

@ -0,0 +1,34 @@
From 04475ab5abc836d24b88622bca50af452be65920 Mon Sep 17 00:00:00 2001
From: Phil Sutter <phil@nwl.cc>
Date: Wed, 29 Nov 2017 18:34:09 +0100
Subject: [PATCH] man: tc-csum.8: Fix inconsistency in example description
Commit 6bbe5e6290db5 ("man: tc-csum.8: Fix example") changed both source
and destination IP addresses in example code but missed to update the
example's description accordingly.
Fixes: 6bbe5e6290db5 ("man: tc-csum.8: Fix example")
Signed-off-by: Phil Sutter <phil@nwl.cc>
(cherry picked from commit 6bf156415a588fa1c975be9a18a1579f63a936a2)
---
man/man8/tc-csum.8 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/man/man8/tc-csum.8 b/man/man8/tc-csum.8
index 409ab71791cce..65724b88d0b68 100644
--- a/man/man8/tc-csum.8
+++ b/man/man8/tc-csum.8
@@ -53,8 +53,8 @@ SCTP header
.B SWEETS
These are merely syntactic sugar and ignored internally.
.SH EXAMPLES
-The following performs stateless NAT for incoming packets from 192.168.1.100 to
-new destination 18.52.86.120 (0x12345678 in hex). Assuming these are UDP
+The following performs stateless NAT for incoming packets from 192.0.2.100 to
+new destination 198.51.100.1. Assuming these are UDP
packets, both IP and UDP checksums have to be recalculated:
.RS
--
2.13.1

View file

@ -0,0 +1,224 @@
From 03ce79e357f3afefe8d1409a98b5ae03c611d611 Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 8 Dec 2017 11:18:07 +0100
Subject: [PATCH] tc: util: Don't call NEXT_ARG_FWD() in
__parse_action_control()
Not all callers want parse_action_control*() to advance the
arguments. For instance act_parse_police() does the argument
advancing itself.
Fixes: e67aba559581 ("tc: actions: add helpers to parse and print control actions")
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 3572e01a090a298e2f4c4f796bad6639b652e031)
---
tc/m_bpf.c | 1 +
tc/m_connmark.c | 1 +
tc/m_csum.c | 1 +
tc/m_gact.c | 10 +++++-----
tc/m_ife.c | 1 +
tc/m_mirred.c | 4 +++-
tc/m_nat.c | 1 +
tc/m_pedit.c | 1 +
tc/m_sample.c | 1 +
tc/m_skbedit.c | 1 +
tc/m_skbmod.c | 1 +
tc/m_tunnel_key.c | 1 +
tc/m_vlan.c | 1 +
tc/tc_util.c | 1 -
14 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/tc/m_bpf.c b/tc/m_bpf.c
index e3d0a2b118384..8b091a72951c3 100644
--- a/tc/m_bpf.c
+++ b/tc/m_bpf.c
@@ -125,6 +125,7 @@ opt_bpf:
parse_action_control_dflt(&argc, &argv, &parm.action,
false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
diff --git a/tc/m_connmark.c b/tc/m_connmark.c
index 37d7185415490..47c7a8c2b17e7 100644
--- a/tc/m_connmark.c
+++ b/tc/m_connmark.c
@@ -82,6 +82,7 @@ parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
}
parse_action_control_dflt(&argc, &argv, &sel.action, false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
diff --git a/tc/m_csum.c b/tc/m_csum.c
index 7b156734f64c5..e1352c0820f69 100644
--- a/tc/m_csum.c
+++ b/tc/m_csum.c
@@ -124,6 +124,7 @@ parse_csum(struct action_util *a, int *argc_p,
}
parse_action_control_dflt(&argc, &argv, &sel.action, false, TC_ACT_OK);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
diff --git a/tc/m_gact.c b/tc/m_gact.c
index 38949e903be36..7ea2d431f89f9 100644
--- a/tc/m_gact.c
+++ b/tc/m_gact.c
@@ -88,14 +88,13 @@ parse_gact(struct action_util *a, int *argc_p, char ***argv_p,
if (argc < 0)
return -1;
-
- if (matches(*argv, "gact") == 0) {
- argc--;
- argv++;
- } else if (parse_action_control(&argc, &argv, &p.action, false) == -1) {
+ if (matches(*argv, "gact") != 0 &&
+ parse_action_control(&argc, &argv, &p.action, false) == -1) {
usage(); /* does not return */
}
+ NEXT_ARG_FWD();
+
#ifdef CONFIG_GACT_PROB
if (argc > 0) {
if (matches(*argv, "random") == 0) {
@@ -115,6 +114,7 @@ parse_gact(struct action_util *a, int *argc_p, char ***argv_p,
if (parse_action_control(&argc, &argv,
&pp.paction, false) == -1)
usage();
+ NEXT_ARG_FWD();
if (get_u16(&pp.pval, *argv, 10)) {
fprintf(stderr, "Illegal probability val 0x%x\n", pp.pval);
return -1;
diff --git a/tc/m_ife.c b/tc/m_ife.c
index 8d0fd31fb9440..34b8e03e7e589 100644
--- a/tc/m_ife.c
+++ b/tc/m_ife.c
@@ -160,6 +160,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p,
parse_action_control_dflt(&argc, &argv, &p.action, false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_mirred.c b/tc/m_mirred.c
index 2384bda1ff045..b09b016c2ca39 100644
--- a/tc/m_mirred.c
+++ b/tc/m_mirred.c
@@ -170,8 +170,10 @@ parse_direction(struct action_util *a, int *argc_p, char ***argv_p,
}
- if (p.eaction == TCA_EGRESS_MIRROR || p.eaction == TCA_INGRESS_MIRROR)
+ if (p.eaction == TCA_EGRESS_MIRROR || p.eaction == TCA_INGRESS_MIRROR) {
parse_action_control(&argc, &argv, &p.action, false);
+ NEXT_ARG_FWD();
+ }
if (argc) {
if (iok && matches(*argv, "index") == 0) {
diff --git a/tc/m_nat.c b/tc/m_nat.c
index 31b68fb6bd784..bb455f080b3a4 100644
--- a/tc/m_nat.c
+++ b/tc/m_nat.c
@@ -117,6 +117,7 @@ parse_nat(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct
parse_action_control_dflt(&argc, &argv, &sel.action, false, TC_ACT_OK);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_pedit.c b/tc/m_pedit.c
index 5d89ab1d832ab..3391be95da38c 100644
--- a/tc/m_pedit.c
+++ b/tc/m_pedit.c
@@ -673,6 +673,7 @@ int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
parse_action_control_dflt(&argc, &argv, &sel.sel.action, false, TC_ACT_OK);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_sample.c b/tc/m_sample.c
index ff5ee6bd1ef63..31774c0e806b4 100644
--- a/tc/m_sample.c
+++ b/tc/m_sample.c
@@ -100,6 +100,7 @@ static int parse_sample(struct action_util *a, int *argc_p, char ***argv_p,
parse_action_control_dflt(&argc, &argv, &p.action, false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_skbedit.c b/tc/m_skbedit.c
index aa374fcb33ed9..c41a7bb082dad 100644
--- a/tc/m_skbedit.c
+++ b/tc/m_skbedit.c
@@ -123,6 +123,7 @@ parse_skbedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
parse_action_control_dflt(&argc, &argv, &sel.action,
false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_skbmod.c b/tc/m_skbmod.c
index ba79308ba8354..00318d42642a5 100644
--- a/tc/m_skbmod.c
+++ b/tc/m_skbmod.c
@@ -125,6 +125,7 @@ static int parse_skbmod(struct action_util *a, int *argc_p, char ***argv_p,
parse_action_control_dflt(&argc, &argv, &p.action, false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c
index 1cdd03560c357..2dc91879c2375 100644
--- a/tc/m_tunnel_key.c
+++ b/tc/m_tunnel_key.c
@@ -175,6 +175,7 @@ static int parse_tunnel_key(struct action_util *a, int *argc_p, char ***argv_p,
parse_action_control_dflt(&argc, &argv, &parm.action,
false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/m_vlan.c b/tc/m_vlan.c
index cccb4996b05f3..0b2966ce82e53 100644
--- a/tc/m_vlan.c
+++ b/tc/m_vlan.c
@@ -137,6 +137,7 @@ static int parse_vlan(struct action_util *a, int *argc_p, char ***argv_p,
parse_action_control_dflt(&argc, &argv, &parm.action,
false, TC_ACT_PIPE);
+ NEXT_ARG_FWD();
if (argc) {
if (matches(*argv, "index") == 0) {
NEXT_ARG();
diff --git a/tc/tc_util.c b/tc/tc_util.c
index b39e5508235ed..173097d2c28a0 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -524,7 +524,6 @@ static int __parse_action_control(int *argc_p, char ***argv_p, int *result_p,
}
result |= jump_cnt;
}
- NEXT_ARG_FWD();
*argc_p = argc;
*argv_p = argv;
*result_p = result;
--
2.13.1

View file

@ -0,0 +1,33 @@
From 79a9bf3743acb9ebaa22e6f8eaa5a817172cca78 Mon Sep 17 00:00:00 2001
From: Roman Mashak <mrv@mojatatu.com>
Date: Mon, 11 Dec 2017 16:24:31 -0500
Subject: [PATCH] ss: remove duplicate assignment
Fixes: 8250bc9ff4e5 ("ss: Unify inet sockets output")
Signed-off-by: Roman Mashak <mrv@mojatatu.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
(cherry picked from commit 9f1a9ae88862f0e5b1beef4bef582be0d8edf3d9)
Conflicts:
misc/ss.c
-> Context changed due to missing commit 00ac78d39c29f
("ss: print tcpi_rcv_ssthresh").
---
misc/ss.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/misc/ss.c b/misc/ss.c
index 45a0c330ec55f..cc1b930a19bcb 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -2227,7 +2227,6 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
s.sacked = info->tcpi_sacked;
s.fackets = info->tcpi_fackets;
s.reordering = info->tcpi_reordering;
- s.rcv_space = info->tcpi_rcv_space;
s.cwnd = info->tcpi_snd_cwnd;
if (info->tcpi_snd_ssthresh < 0xFFFF)
--
2.13.1

View file

@ -0,0 +1,31 @@
From 1ac0ee2bae7fc79d7be922832de67f9df68f635f Mon Sep 17 00:00:00 2001
From: Davide Caratti <dcaratti@redhat.com>
Date: Tue, 12 Dec 2017 16:45:15 +0100
Subject: [PATCH] tc: bash-completion: add missing 'classid' keyword
users of 'matchall' filter can specify a value for the class id: update
bash-completion accordingly.
Fixes: b32c0b64fa2b ("tc: bash-completion: Add support for matchall")
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
(cherry picked from commit 88b428f03f7c1fa64331105f54d42806cece77be)
---
bash-completion/tc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bash-completion/tc b/bash-completion/tc
index 80d12972c8f3c..29bca5d9354d3 100644
--- a/bash-completion/tc
+++ b/bash-completion/tc
@@ -450,7 +450,7 @@ _tc_filter_options()
return 0
;;
matchall)
- _tc_once_attr 'action skip_sw skip_hw'
+ _tc_once_attr 'action classid skip_sw skip_hw'
return 0
;;
flower)
--
2.13.1

View file

@ -0,0 +1,46 @@
From 673a4cc366b17a2f8805e031aaba204a89d5218f Mon Sep 17 00:00:00 2001
From: Leon Romanovsky <leonro@mellanox.com>
Date: Wed, 27 Dec 2017 09:57:50 +0200
Subject: [PATCH] rdma: Reduce scope of _dev_map_lookup call
There is no external users of _dev_map_lookup function,
so let's limit its scope to be local.
Fixes: 40df8263a0f0 ("rdma: Add dev object")
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
(cherry picked from commit 0fc8c30b4e3ef4c6fc1c3142f9d906ec71d46ab8)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
rdma/rdma.h | 1 -
rdma/utils.c | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/rdma/rdma.h b/rdma/rdma.h
index d551eb2966e11..c07493c912423 100644
--- a/rdma/rdma.h
+++ b/rdma/rdma.h
@@ -78,7 +78,6 @@ int rd_exec_cmd(struct rd *rd, const struct rd_cmd *c, const char *str);
*/
void rd_free_devmap(struct rd *rd);
struct dev_map *dev_map_lookup(struct rd *rd, bool allow_port_index);
-struct dev_map *_dev_map_lookup(struct rd *rd, const char *dev_name);
/*
* Netlink
diff --git a/rdma/utils.c b/rdma/utils.c
index eb4377cf2e185..6ce1fd70e058f 100644
--- a/rdma/utils.c
+++ b/rdma/utils.c
@@ -236,7 +236,7 @@ int rd_recv_msg(struct rd *rd, mnl_cb_t callback, void *data, unsigned int seq)
return ret;
}
-struct dev_map *_dev_map_lookup(struct rd *rd, const char *dev_name)
+static struct dev_map *_dev_map_lookup(struct rd *rd, const char *dev_name)
{
struct dev_map *dev_map;
--
2.15.1

View file

@ -0,0 +1,35 @@
From 05fd4c2c9d99d757b539185c1740a5943f48188f Mon Sep 17 00:00:00 2001
From: Leon Romanovsky <leonro@mellanox.com>
Date: Wed, 27 Dec 2017 09:57:51 +0200
Subject: [PATCH] rdma: Protect dev_map_lookup from wrong input
Despite the fact that all callers to dev_map_lookup are ensuring that
there is always device name prior to call to that function, it is better
and safer to check that in the dev_map_lookup itself.
Fixes: 40df8263a0f0 ("rdma: Add dev object")
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
(cherry picked from commit 99da90326e6af8e17400a01cf48bb60606dd22a6)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
rdma/utils.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/rdma/utils.c b/rdma/utils.c
index 6ce1fd70e058f..bb29fa1a2386e 100644
--- a/rdma/utils.c
+++ b/rdma/utils.c
@@ -253,6 +253,9 @@ struct dev_map *dev_map_lookup(struct rd *rd, bool allow_port_index)
char *dev_name;
char *slash;
+ if (rd_no_arg(rd))
+ return NULL;
+
dev_name = strdup(rd_argv(rd));
if (allow_port_index) {
slash = strrchr(dev_name, '/');
--
2.15.1

View file

@ -0,0 +1,32 @@
From 532fb96fbfd19853cb51863378ba98b1b1cfe770 Mon Sep 17 00:00:00 2001
From: Leon Romanovsky <leonro@mellanox.com>
Date: Wed, 27 Dec 2017 09:57:53 +0200
Subject: [PATCH] rdma: Fix misspelled SYS_IMAGE_GUID
SYS_IMAGE_GUIG is actually SYS_IMAGE_GUID.
Fixes: da990ab40a92 ("rdma: Add link object")
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
(cherry picked from commit 4e2eb9fdf911971c8a6615e4b07656047ada0093)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
rdma/link.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rdma/link.c b/rdma/link.c
index 3a4b00bd533b1..f0eaccbb8be70 100644
--- a/rdma/link.c
+++ b/rdma/link.c
@@ -30,7 +30,7 @@ static const char *caps_to_str(uint32_t idx)
x(PKEY_NVRAM, 8) \
x(LED_INFO, 9) \
x(SM_DISABLED, 10) \
- x(SYS_IMAGE_GUIG, 11) \
+ x(SYS_IMAGE_GUID, 11) \
x(PKEY_SW_EXT_PORT_TRAP, 12) \
x(EXTENDED_SPEEDS, 14) \
x(CM, 16) \
--
2.15.1

View file

@ -0,0 +1,35 @@
From 9e3844cbce6e9882dfe7a5cda91231f2ef9c2bb1 Mon Sep 17 00:00:00 2001
From: Leon Romanovsky <leonro@mellanox.com>
Date: Wed, 27 Dec 2017 09:57:54 +0200
Subject: [PATCH] rdma: Check that port index exists before operate on link
layer
Link layer operates on port layer, hence it should check
it existence before execution commands.
Fixes: da990ab40a92 ("rdma: Add link object")
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
(cherry picked from commit e3dee3c81f7fba93ae8c84f6c2fb5009c0764d65)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
rdma/link.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/rdma/link.c b/rdma/link.c
index f0eaccbb8be70..d93922890bb7f 100644
--- a/rdma/link.c
+++ b/rdma/link.c
@@ -277,6 +277,9 @@ static int link_one_show(struct rd *rd)
{ 0 }
};
+ if (!rd->port_idx)
+ return 0;
+
return rd_exec_cmd(rd, cmds, "parameter");
}
--
2.15.1

View file

@ -0,0 +1,51 @@
From 6272585e2488954fcfe6694f51fc22f9fd21ebf6 Mon Sep 17 00:00:00 2001
From: Serhey Popovych <serhe.popovych@gmail.com>
Date: Wed, 27 Dec 2017 13:28:14 +0200
Subject: [PATCH] gre,ip6tnl/tunnel: Fix noencap- support
We must clear bit, not set all but given bit.
Fixes: 858dbb208e39 ("ip link: Add support for remote checksum offload to IP tunnels")
Fixes: 73516e128a5a ("ip6tnl: Support for fou encapsulation"
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
(cherry picked from commit 147ade01b036aa0b4d6041ea0ef92608a4ded72c)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
ip/link_gre.c | 4 ++--
ip/link_ip6tnl.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/ip/link_gre.c b/ip/link_gre.c
index 9ea2970cadc24..72d172a43bfa6 100644
--- a/ip/link_gre.c
+++ b/ip/link_gre.c
@@ -315,11 +315,11 @@ get_failed:
} else if (strcmp(*argv, "encap-udp6-csum") == 0) {
encapflags |= TUNNEL_ENCAP_FLAG_CSUM6;
} else if (strcmp(*argv, "noencap-udp6-csum") == 0) {
- encapflags |= ~TUNNEL_ENCAP_FLAG_CSUM6;
+ encapflags &= ~TUNNEL_ENCAP_FLAG_CSUM6;
} else if (strcmp(*argv, "encap-remcsum") == 0) {
encapflags |= TUNNEL_ENCAP_FLAG_REMCSUM;
} else if (strcmp(*argv, "noencap-remcsum") == 0) {
- encapflags |= ~TUNNEL_ENCAP_FLAG_REMCSUM;
+ encapflags &= ~TUNNEL_ENCAP_FLAG_REMCSUM;
} else if (strcmp(*argv, "external") == 0) {
metadata = 1;
} else if (strcmp(*argv, "ignore-df") == 0) {
diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c
index a41990068f0f7..3e92748c9a0aa 100644
--- a/ip/link_ip6tnl.c
+++ b/ip/link_ip6tnl.c
@@ -298,7 +298,7 @@ get_failed:
} else if (strcmp(*argv, "encap-remcsum") == 0) {
encapflags |= TUNNEL_ENCAP_FLAG_REMCSUM;
} else if (strcmp(*argv, "noencap-remcsum") == 0) {
- encapflags |= ~TUNNEL_ENCAP_FLAG_REMCSUM;
+ encapflags &= ~TUNNEL_ENCAP_FLAG_REMCSUM;
} else if (strcmp(*argv, "external") == 0) {
metadata = 1;
} else
--
2.15.1

View file

@ -0,0 +1,40 @@
From 8dc06b675f9b3dc83573028fc245ab1090ac56d0 Mon Sep 17 00:00:00 2001
From: David Ahern <dsahern@gmail.com>
Date: Fri, 5 Jan 2018 19:42:05 -0800
Subject: [PATCH] Restore --no-print-directory option for silent builds
Commit 69fed534a533 ("change how Config is used in Makefile's") removed
Config from Makefile. Config had the checks to set VERBOSE based on user
request and VERBOSE is used to add the --no-print-directory argument.
Since Config is gone, add the relevant setup for VERBOSE to Makefile
to restore quieter builds by default.
Fixes: 69fed534a533 ("change how Config is used in Makefile's")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
(cherry picked from commit ac6561417a4d0d4167c1b54e7d163e2062d7f430)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
Makefile | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Makefile b/Makefile
index 6ad9610430526..48fa05c9d4913 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,12 @@
# Top level Makefile for iproute2
+ifeq ("$(origin V)", "command line")
+VERBOSE = $(V)
+endif
+ifndef VERBOSE
+VERBOSE = 0
+endif
+
ifeq ($(VERBOSE),0)
MAKEFLAGS += --no-print-directory
endif
--
2.15.1

View file

@ -0,0 +1,53 @@
From d23faa40def513ce17fb2f7ed0af7437859e33ed Mon Sep 17 00:00:00 2001
From: Serhey Popovych <serhe.popovych@gmail.com>
Date: Wed, 10 Jan 2018 17:53:09 +0200
Subject: [PATCH] ip6/tunnel: Fix tclass output
In link_gre6.c it seems copy paste error: tclass is 8 bits,
not 20 as flowlabel.
In link_iptnl.c rename "flowinfo_tclass" to "tclass" as it
correct name since flowinfo is implementation internal name
used to label combined within u32 attribute tclass and
flowlabel.
Fixes: 1facc1c61c07 ("ip: link_ip6tnl.c: add json output support")
Fixes: 2e706e12d9b0 ("Merge branch 'master' into net-next")
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
(cherry picked from commit b76b24006cdbb4c29ad162e61bac720203ac2cda)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
ip/link_gre6.c | 2 +-
ip/link_ip6tnl.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ip/link_gre6.c b/ip/link_gre6.c
index 06dcd6756ec41..7920c9a207c29 100644
--- a/ip/link_gre6.c
+++ b/ip/link_gre6.c
@@ -499,7 +499,7 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (is_json_context()) {
SPRINT_BUF(b1);
- snprintf(b1, sizeof(b1), "0x%05x",
+ snprintf(b1, sizeof(b1), "0x%02x",
ntohl(flowinfo & IP6_FLOWINFO_TCLASS) >> 20);
print_string(PRINT_JSON, "tclass", NULL, b1);
} else {
diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c
index 3e92748c9a0aa..f922095eea32c 100644
--- a/ip/link_ip6tnl.c
+++ b/ip/link_ip6tnl.c
@@ -410,7 +410,7 @@ static void ip6tunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb
SPRINT_BUF(b1);
snprintf(b1, sizeof(b1), "0x%02x", (__u8)(val >> 20));
- print_string(PRINT_JSON, "flowinfo_tclass", NULL, b1);
+ print_string(PRINT_JSON, "tclass", NULL, b1);
} else {
printf("tclass 0x%02x ", (__u8)(val >> 20));
}
--
2.15.1

View file

@ -0,0 +1,43 @@
From 6d1d262d4031164a00182cf67b181704e5d9fe76 Mon Sep 17 00:00:00 2001
From: Gal Pressman <galp@mellanox.com>
Date: Tue, 16 Jan 2018 15:41:58 +0200
Subject: [PATCH] iplink: Validate minimum tx rate is less than maximum tx rate
According to the documentation (man ip-link), the minimum TXRATE should
be always <= Maximum TXRATE, but commit f89a2a05ffa9 ("Add support to
configure SR-IOV VF minimum and maximum Tx rate through ip tool") didn't
enforce it.
Fixes: f89a2a05ffa9 ("Add support to configure SR-IOV VF minimum and maximum Tx rate through ip tool")
Cc: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Gal Pressman <galp@mellanox.com>
Reviewed-by: Eran Ben Elisha <eranbe@mellanox.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
(cherry picked from commit 04be08e0bd2ed67bbedb787b70d1d73e91322d75)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
ip/iplink.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/ip/iplink.c b/ip/iplink.c
index 6a96ea9ff56a7..47723f091196a 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -531,6 +531,14 @@ static int iplink_parse_vf(int vf, int *argcp, char ***argvp,
if (tivt.max_tx_rate == -1)
tivt.max_tx_rate = tmax;
}
+
+ if (tivt.max_tx_rate && tivt.min_tx_rate > tivt.max_tx_rate) {
+ fprintf(stderr,
+ "Invalid min_tx_rate %d - must be <= max_tx_rate %d\n",
+ tivt.min_tx_rate, tivt.max_tx_rate);
+ return -1;
+ }
+
addattr_l(&req->n, sizeof(*req), IFLA_VF_RATE, &tivt,
sizeof(tivt));
}
--
2.15.1

View file

@ -0,0 +1,49 @@
From 15466c4fe44344aad9086acef31a295e93a9917d Mon Sep 17 00:00:00 2001
From: Gal Pressman <galp@mellanox.com>
Date: Tue, 16 Jan 2018 15:41:59 +0200
Subject: [PATCH] ipaddress: Make sure VF min/max rate API is supported before
using it
When using the new minimum rate API and providing only one parameter
(minimum rate/maximum rate), we query the VF min and max rate regardless
of kernel support.
This resulted in segmentation fault in ipaddr_loop_each_vf, which tries
to access NULL pointer.
This patch identifies such cases by testing the VF table for NULL
pointer in IFLA_VF_RATE, and aborts the operation.
Aborting on the first VF is valid since if the kernel does not support
the new API for the first VF, it will not support it for the other VFs
as well.
Fixes: f89a2a05ffa9 ("Add support to configure SR-IOV VF minimum and maximum Tx rate through ip tool")
Cc: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Gal Pressman <galp@mellanox.com>
Reviewed-by: Eran Ben Elisha <eranbe@mellanox.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
(cherry picked from commit 39315157ab16205846ed34996cf4c8c0f58113c0)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
ip/ipaddress.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 9e9a7e0a6477f..bf27c15b4f718 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -2251,6 +2251,12 @@ ipaddr_loop_each_vf(struct rtattr *tb[], int vfnum, int *min, int *max)
for (i = RTA_DATA(vflist); RTA_OK(i, rem); i = RTA_NEXT(i, rem)) {
parse_rtattr_nested(vf, IFLA_VF_MAX, i);
+
+ if (!vf[IFLA_VF_RATE]) {
+ fprintf(stderr, "VF min/max rate API not supported\n");
+ exit(1);
+ }
+
vf_rate = RTA_DATA(vf[IFLA_VF_RATE]);
if (vf_rate->vf == vfnum) {
*min = vf_rate->min_tx_rate;
--
2.15.1

View file

@ -0,0 +1,38 @@
From ef0a8addf8bb3678338a37be12eb55cfe748f0f9 Mon Sep 17 00:00:00 2001
From: Jakub Kicinski <jakub.kicinski@netronome.com>
Date: Fri, 26 Jan 2018 11:30:35 -0800
Subject: [PATCH] ip: address: fix stats64 JSON object name
The JSON object name for statistics in ip link show is "stats644".
Looks like a typo, commit d0e720111aad ("ip: ipaddress.c: add support
for json output") contains an example with the expected "stats64" name.
The fact that no one has noticed until now is probably an indication
that no one is using this object. Hopefully it's not too late to fix
this, although IIUC this has already been in 4.13 and 4.14 releases :S
Fixes: d0e720111aad ("ip: ipaddress.c: add support for json output")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
(cherry picked from commit 7f536df7f30f340eed7c4e3c9fee6c8c1f6d8daa)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
ip/ipaddress.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index bf27c15b4f718..97cb67411138d 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -598,7 +598,7 @@ static void print_link_stats64(FILE *fp, const struct rtnl_link_stats64 *s,
const struct rtattr *carrier_changes)
{
if (is_json_context()) {
- open_json_object("stats644");
+ open_json_object("stats64");
/* RX stats */
open_json_object("rx");
--
2.15.1

View file

@ -0,0 +1,32 @@
From af2cc3dd9200a73e93ed7bf3eb9cce29cd9c17dd Mon Sep 17 00:00:00 2001
From: Leon Romanovsky <leonro@mellanox.com>
Date: Wed, 31 Jan 2018 10:11:56 +0200
Subject: [PATCH] rdma: Check return value of strdup call
Fixes: 74bd75c2b68d ("rdma: Add basic infrastructure for RDMA tool")
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
(cherry picked from commit 5f8265536f6f511ec62d3a0ee7e1324a8720f7e3)
Signed-off-by: Phil Sutter <psutter@redhat.com>
---
rdma/utils.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/rdma/utils.c b/rdma/utils.c
index bb29fa1a2386e..47ca2969706fb 100644
--- a/rdma/utils.c
+++ b/rdma/utils.c
@@ -67,6 +67,10 @@ static struct dev_map *dev_map_alloc(const char *dev_name)
if (!dev_map)
return NULL;
dev_map->dev_name = strdup(dev_name);
+ if (!dev_map->dev_name) {
+ free(dev_map);
+ return NULL;
+ }
return dev_map;
}
--
2.15.1

View file

@ -1,16 +0,0 @@
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 Normal file
View file

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

5
cbq-0000.example Normal file
View file

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

View file

@ -1,42 +1,59 @@
%global cbq_version v0.7.3
Summary: Advanced IP routing and network device configuration tools
Name: iproute
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
Version: 4.14.1
Release: 5%{?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
License: GPL-2.0-or-later AND NIST-PD
# 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
# Suggested backports by Fixes: tag.
Patch2: 0002-tc-move-action-cookie-print-out-of-the-stats-if.patch
Patch3: 0003-tc-remove-action-cookie-len-from-printout.patch
Patch4: 0004-link_gre6-Detect-invalid-encaplimit-values.patch
Patch5: 0005-man-tc-csum.8-Fix-inconsistency-in-example-descripti.patch
Patch6: 0006-tc-util-Don-t-call-NEXT_ARG_FWD-in-__parse_action_co.patch
Patch7: 0007-ss-remove-duplicate-assignment.patch
Patch8: 0008-tc-bash-completion-add-missing-classid-keyword.patch
Patch9: 0009-rdma-Reduce-scope-of-_dev_map_lookup-call.patch
Patch10: 0010-rdma-Protect-dev_map_lookup-from-wrong-input.patch
Patch11: 0011-rdma-Fix-misspelled-SYS_IMAGE_GUID.patch
Patch12: 0012-rdma-Check-that-port-index-exists-before-operate-on-.patch
Patch13: 0013-gre-ip6tnl-tunnel-Fix-noencap-support.patch
Patch14: 0014-Restore-no-print-directory-option-for-silent-builds.patch
Patch15: 0015-ip6-tunnel-Fix-tclass-output.patch
Patch16: 0016-iplink-Validate-minimum-tx-rate-is-less-than-maximum.patch
Patch17: 0017-ipaddress-Make-sure-VF-min-max-rate-API-is-supported.patch
Patch18: 0018-ip-address-fix-stats64-JSON-object-name.patch
Patch19: 0019-rdma-Check-return-value-of-strdup-call.patch
License: GPLv2+ and Public Domain
BuildRequires: bison
BuildRequires: elfutils-libelf-devel
BuildRequires: flex
BuildRequires: gcc
BuildRequires: iptables-devel >= 1.4.5
BuildRequires: libbpf-devel
BuildRequires: libcap-devel
BuildRequires: libdb-devel
BuildRequires: libmnl-devel
BuildRequires: libselinux-devel
BuildRequires: make
BuildRequires: pkgconfig
%if ! 0%{?_module_build}
%if 0%{?fedora}
BuildRequires: linux-atm-libs-devel
%endif
%endif
Requires: libbpf
Requires: psmisc
# Compat symlinks for Requires in other packages.
# For the UsrMove transition period
Conflicts: filesystem < 3
Provides: /sbin/ip
%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
Obsoletes: %{name} < 4.5.0-3
Recommends: %{name}-tc
%description
The iproute package contains networking utilities (ip and rtmon, for example)
@ -45,9 +62,11 @@ kernel.
%package tc
Summary: Linux Traffic Control utility
License: GPL-2.0-or-later
Group: Applications/System
License: GPLv2+
Obsoletes: %{name} < 4.5.0-3
Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: /sbin/tc
Provides: tc
%description tc
The Traffic Control utility manages queueing disciplines, their classes and
@ -57,8 +76,8 @@ Linux.
%if ! 0%{?_module_build}
%package doc
Summary: Documentation for iproute2 utilities with examples
License: GPL-2.0-or-later
Requires: %{name} = %{version}-%{release}
Group: Applications/System
License: GPLv2+
%description doc
The iproute documentation contains howtos and examples of settings.
@ -66,8 +85,8 @@ The iproute documentation contains howtos and examples of settings.
%package devel
Summary: iproute development files
License: GPL-2.0-or-later
Requires: %{name} = %{version}-%{release}
Group: Development/Libraries
License: GPLv2+
Provides: iproute-static = %{version}-%{release}
%description devel
@ -77,14 +96,34 @@ The libnetlink static library.
%autosetup -p1 -n %{name}2-%{version}
%build
%configure --color auto
echo -e "\nPREFIX=%{_prefix}\nSBINDIR=%{_sbindir}" >> config.mk
%make_build
export CFLAGS="%{optflags}"
export LIBDIR=/%{_libdir}
export IPT_LIB_DIR=/%{_lib}/xtables
./configure
make %{?_smp_mflags}
%install
%make_install
export DESTDIR='%{buildroot}'
export SBINDIR='%{_sbindir}'
export MANDIR='%{_mandir}'
export LIBDIR='%{_libdir}'
export CONFDIR='%{_sysconfdir}/iproute2'
export DOCDIR='%{_docdir}'
make install
echo '.so man8/tc-cbq.8' > %{buildroot}%{_mandir}/man8/cbq.8
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
# libnetlink
install -D -m644 include/libnetlink.h %{buildroot}%{_includedir}/libnetlink.h
@ -93,61 +132,45 @@ 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
%dir %{_datadir}/iproute2
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc README README.devel
%doc README README.decnet README.distribution README.lnstat
%{_mandir}/man7/*
%exclude %{_mandir}/man7/tc-*
%{_mandir}/man8/*
%exclude %{_mandir}/man8/tc*
%exclude %{_mandir}/man8/cbq*
%exclude %{_mandir}/man8/arpd*
%attr(644,root,root) %config %{_datadir}/iproute2/*
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/iproute2/*
%{_sbindir}/*
%attr(644,root,root) %{_sysconfdir}/iproute2/*
%exclude %{_sbindir}/tc
%exclude %{_sbindir}/routel
%{_datadir}/bash-completion/completions/devlink
%exclude %{_sbindir}/cbq
%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 examples
%endif
%files devel
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_mandir}/man3/*
%{_libdir}/libnetlink.a
@ -155,4 +178,730 @@ fi
%{_includedir}/iproute2/bpf_elf.h
%changelog
%autochangelog
* Tue Feb 13 2018 Phil Sutter <psutter@redhat.com> - 4.14.1-5
- Add further upstream suggested backports.
* Mon Dec 11 2017 Phil Sutter <psutter@redhat.com> - 4.14.1-4
- Add missing patch files.
* Mon Dec 11 2017 Phil Sutter <psutter@redhat.com> - 4.14.1-3
- Add upstream suggested backports.
- Make use of %%autosetup macro.
* Wed Nov 15 2017 Phil Sutter <psutter@redhat.com> - 4.14.1-2
- Drop unused build dependencies
* Wed Nov 15 2017 Phil Sutter <psutter@redhat.com> - 4.14.1-1
- New version 4.14.1
* Tue Sep 19 2017 Phil Sutter <psutter@redhat.com> - 4.13.0-1
- New version 4.13.0
* 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
* Thu May 11 2017 Karsten Hopp <karsten@redhat.com> - 4.10.0-3
- don't build docs for module builds to limit dependencies
* Fri Mar 17 2017 Phil Sutter <psutter@redhat.com> - 4.10.0-2
- Add two fixes to 4.10.0 release from upstream.
* Tue Mar 14 2017 Phil Sutter <psutter@redhat.com> - 4.10.0-1
- Ship new header iproute2/bpf_elf.h
- Document content of remaining docs fixup patch in spec file
- Drop patches already applied upstream
- New version 4.10.0
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.9.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 2 2017 Thomas Woerner <twoerner@redhat.com> - 4.9.0-3
- Release bump for iptables-1.6.1 (libxtables.so.12)
* Sat Jan 28 2017 Phil Sutter <psutter@redhat.com> - 4.9.0-2
- Fix for failing 'make install'
* Sat Jan 28 2017 Phil Sutter <psutter@redhat.com> - 4.9.0-1
- New version 4.9.0
* Fri Jan 13 2017 Phil Sutter <psutter@redhat.com> - 4.8.0-2
- Fix segfault in xt action
* Wed Nov 30 2016 Phil Sutter <psutter@redhat.com> - 4.8.0-1
- New version 4.8.0
* Wed Aug 10 2016 Phil Sutter <psutter@redhat.com> - 4.7.0-1
- New version 4.7.0
* 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

View file

@ -1,17 +0,0 @@
# 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,6 +1 @@
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
SHA512 (iproute2-4.14.1.tar.xz) = e593b68c46ef5f98bd6911ee7beb38388a14935a29fefabdeccc96aa012593b6f3a49b3bb1baed7d77e54f1f4a857172e058b73407f4070f158b8713f44f5d2c

View file

@ -1,64 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

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

View file

@ -1,268 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

@ -1,3 +0,0 @@
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

@ -1,89 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,109 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,74 +0,0 @@
#!/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

@ -1,35 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,149 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,342 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,63 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

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

View file

@ -1,234 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,74 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,118 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,110 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,63 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

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

View file

@ -1,107 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,59 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,104 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -1,47 +0,0 @@
#!/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

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

View file

@ -1,65 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

View file

@ -1,27 +0,0 @@
---
# 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