diff --git a/.gitignore b/.gitignore index fd6d31a..320a98c 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-Documentation-fixes.patch b/0001-Documentation-fixes.patch new file mode 100644 index 0000000..c3a9185 --- /dev/null +++ b/0001-Documentation-fixes.patch @@ -0,0 +1,43 @@ +From 34f2e1640c6d6a051116478011eb58f995a24076 Mon Sep 17 00:00:00 2001 +From: Phil Sutter +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 iproutedoc)", ++.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 + diff --git a/0002-tc-flower-use-correct-type-when-calling-flower_icmp_.patch b/0002-tc-flower-use-correct-type-when-calling-flower_icmp_.patch new file mode 100644 index 0000000..1ca3e04 --- /dev/null +++ b/0002-tc-flower-use-correct-type-when-calling-flower_icmp_.patch @@ -0,0 +1,38 @@ +From 2706951bc0dad80596f172e9197452163bc9e067 Mon Sep 17 00:00:00 2001 +From: Simon Horman +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 +(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 + diff --git a/0002-tc-move-action-cookie-print-out-of-the-stats-if.patch b/0002-tc-move-action-cookie-print-out-of-the-stats-if.patch new file mode 100644 index 0000000..28c78a3 --- /dev/null +++ b/0002-tc-move-action-cookie-print-out-of-the-stats-if.patch @@ -0,0 +1,50 @@ +From 06ed8e1fc690683fb1226a23548c81b7032fe7fe Mon Sep 17 00:00:00 2001 +From: Jiri Pirko +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 +(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 + diff --git a/0003-bpf-test-for-valid-type-in-bpf_get_work_dir.patch b/0003-bpf-test-for-valid-type-in-bpf_get_work_dir.patch new file mode 100644 index 0000000..6b40d60 --- /dev/null +++ b/0003-bpf-test-for-valid-type-in-bpf_get_work_dir.patch @@ -0,0 +1,38 @@ +From 305197a2378ffb581f1eca3ec804f76690be7b5a Mon Sep 17 00:00:00 2001 +From: Daniel Borkmann +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 +Signed-off-by: Daniel Borkmann +(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 + diff --git a/0003-tc-remove-action-cookie-len-from-printout.patch b/0003-tc-remove-action-cookie-len-from-printout.patch new file mode 100644 index 0000000..7ef2fcb --- /dev/null +++ b/0003-tc-remove-action-cookie-len-from-printout.patch @@ -0,0 +1,31 @@ +From 903d2bee8c6f156790758f7e9131490b70475ecd Mon Sep 17 00:00:00 2001 +From: Jiri Pirko +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 +Fixes: fd8b3d2c1b9b ("actions: Add support for user cookies") +Signed-off-by: Jiri Pirko +(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 + diff --git a/0004-link_gre6-Detect-invalid-encaplimit-values.patch b/0004-link_gre6-Detect-invalid-encaplimit-values.patch new file mode 100644 index 0000000..af51d99 --- /dev/null +++ b/0004-link_gre6-Detect-invalid-encaplimit-values.patch @@ -0,0 +1,31 @@ +From 6ecadd9b426bb05c31ec92c01e5352ac05d4e676 Mon Sep 17 00:00:00 2001 +From: Phil Sutter +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 +(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 + diff --git a/0005-man-tc-csum.8-Fix-inconsistency-in-example-descripti.patch b/0005-man-tc-csum.8-Fix-inconsistency-in-example-descripti.patch new file mode 100644 index 0000000..3a7a7ce --- /dev/null +++ b/0005-man-tc-csum.8-Fix-inconsistency-in-example-descripti.patch @@ -0,0 +1,34 @@ +From 04475ab5abc836d24b88622bca50af452be65920 Mon Sep 17 00:00:00 2001 +From: Phil Sutter +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 +(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 + diff --git a/0006-tc-util-Don-t-call-NEXT_ARG_FWD-in-__parse_action_co.patch b/0006-tc-util-Don-t-call-NEXT_ARG_FWD-in-__parse_action_co.patch new file mode 100644 index 0000000..518108f --- /dev/null +++ b/0006-tc-util-Don-t-call-NEXT_ARG_FWD-in-__parse_action_co.patch @@ -0,0 +1,224 @@ +From 03ce79e357f3afefe8d1409a98b5ae03c611d611 Mon Sep 17 00:00:00 2001 +From: Michal Privoznik +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 +(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 + diff --git a/0007-ss-remove-duplicate-assignment.patch b/0007-ss-remove-duplicate-assignment.patch new file mode 100644 index 0000000..4388296 --- /dev/null +++ b/0007-ss-remove-duplicate-assignment.patch @@ -0,0 +1,33 @@ +From 79a9bf3743acb9ebaa22e6f8eaa5a817172cca78 Mon Sep 17 00:00:00 2001 +From: Roman Mashak +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 +Signed-off-by: Stephen Hemminger +(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 + diff --git a/0008-tc-bash-completion-add-missing-classid-keyword.patch b/0008-tc-bash-completion-add-missing-classid-keyword.patch new file mode 100644 index 0000000..d3bbec1 --- /dev/null +++ b/0008-tc-bash-completion-add-missing-classid-keyword.patch @@ -0,0 +1,31 @@ +From 1ac0ee2bae7fc79d7be922832de67f9df68f635f Mon Sep 17 00:00:00 2001 +From: Davide Caratti +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 +(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 + diff --git a/0009-rdma-Reduce-scope-of-_dev_map_lookup-call.patch b/0009-rdma-Reduce-scope-of-_dev_map_lookup-call.patch new file mode 100644 index 0000000..542d503 --- /dev/null +++ b/0009-rdma-Reduce-scope-of-_dev_map_lookup-call.patch @@ -0,0 +1,46 @@ +From 673a4cc366b17a2f8805e031aaba204a89d5218f Mon Sep 17 00:00:00 2001 +From: Leon Romanovsky +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 +Signed-off-by: David Ahern +(cherry picked from commit 0fc8c30b4e3ef4c6fc1c3142f9d906ec71d46ab8) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0010-rdma-Protect-dev_map_lookup-from-wrong-input.patch b/0010-rdma-Protect-dev_map_lookup-from-wrong-input.patch new file mode 100644 index 0000000..622331c --- /dev/null +++ b/0010-rdma-Protect-dev_map_lookup-from-wrong-input.patch @@ -0,0 +1,35 @@ +From 05fd4c2c9d99d757b539185c1740a5943f48188f Mon Sep 17 00:00:00 2001 +From: Leon Romanovsky +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 +Signed-off-by: David Ahern +(cherry picked from commit 99da90326e6af8e17400a01cf48bb60606dd22a6) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0011-rdma-Fix-misspelled-SYS_IMAGE_GUID.patch b/0011-rdma-Fix-misspelled-SYS_IMAGE_GUID.patch new file mode 100644 index 0000000..65ad62e --- /dev/null +++ b/0011-rdma-Fix-misspelled-SYS_IMAGE_GUID.patch @@ -0,0 +1,32 @@ +From 532fb96fbfd19853cb51863378ba98b1b1cfe770 Mon Sep 17 00:00:00 2001 +From: Leon Romanovsky +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 +Signed-off-by: David Ahern +(cherry picked from commit 4e2eb9fdf911971c8a6615e4b07656047ada0093) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0012-rdma-Check-that-port-index-exists-before-operate-on-.patch b/0012-rdma-Check-that-port-index-exists-before-operate-on-.patch new file mode 100644 index 0000000..61341cd --- /dev/null +++ b/0012-rdma-Check-that-port-index-exists-before-operate-on-.patch @@ -0,0 +1,35 @@ +From 9e3844cbce6e9882dfe7a5cda91231f2ef9c2bb1 Mon Sep 17 00:00:00 2001 +From: Leon Romanovsky +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 +Signed-off-by: David Ahern +(cherry picked from commit e3dee3c81f7fba93ae8c84f6c2fb5009c0764d65) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0013-gre-ip6tnl-tunnel-Fix-noencap-support.patch b/0013-gre-ip6tnl-tunnel-Fix-noencap-support.patch new file mode 100644 index 0000000..9c07e51 --- /dev/null +++ b/0013-gre-ip6tnl-tunnel-Fix-noencap-support.patch @@ -0,0 +1,51 @@ +From 6272585e2488954fcfe6694f51fc22f9fd21ebf6 Mon Sep 17 00:00:00 2001 +From: Serhey Popovych +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 +(cherry picked from commit 147ade01b036aa0b4d6041ea0ef92608a4ded72c) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0014-Restore-no-print-directory-option-for-silent-builds.patch b/0014-Restore-no-print-directory-option-for-silent-builds.patch new file mode 100644 index 0000000..c9ce890 --- /dev/null +++ b/0014-Restore-no-print-directory-option-for-silent-builds.patch @@ -0,0 +1,40 @@ +From 8dc06b675f9b3dc83573028fc245ab1090ac56d0 Mon Sep 17 00:00:00 2001 +From: David Ahern +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 +Signed-off-by: Stephen Hemminger +(cherry picked from commit ac6561417a4d0d4167c1b54e7d163e2062d7f430) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0015-ip6-tunnel-Fix-tclass-output.patch b/0015-ip6-tunnel-Fix-tclass-output.patch new file mode 100644 index 0000000..1e718d6 --- /dev/null +++ b/0015-ip6-tunnel-Fix-tclass-output.patch @@ -0,0 +1,53 @@ +From d23faa40def513ce17fb2f7ed0af7437859e33ed Mon Sep 17 00:00:00 2001 +From: Serhey Popovych +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 +Signed-off-by: Stephen Hemminger +(cherry picked from commit b76b24006cdbb4c29ad162e61bac720203ac2cda) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0016-iplink-Validate-minimum-tx-rate-is-less-than-maximum.patch b/0016-iplink-Validate-minimum-tx-rate-is-less-than-maximum.patch new file mode 100644 index 0000000..eebb89f --- /dev/null +++ b/0016-iplink-Validate-minimum-tx-rate-is-less-than-maximum.patch @@ -0,0 +1,43 @@ +From 6d1d262d4031164a00182cf67b181704e5d9fe76 Mon Sep 17 00:00:00 2001 +From: Gal Pressman +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 +Signed-off-by: Gal Pressman +Reviewed-by: Eran Ben Elisha +Reviewed-by: Leon Romanovsky +(cherry picked from commit 04be08e0bd2ed67bbedb787b70d1d73e91322d75) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0017-ipaddress-Make-sure-VF-min-max-rate-API-is-supported.patch b/0017-ipaddress-Make-sure-VF-min-max-rate-API-is-supported.patch new file mode 100644 index 0000000..4bc40bd --- /dev/null +++ b/0017-ipaddress-Make-sure-VF-min-max-rate-API-is-supported.patch @@ -0,0 +1,49 @@ +From 15466c4fe44344aad9086acef31a295e93a9917d Mon Sep 17 00:00:00 2001 +From: Gal Pressman +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 +Signed-off-by: Gal Pressman +Reviewed-by: Eran Ben Elisha +Reviewed-by: Leon Romanovsky +(cherry picked from commit 39315157ab16205846ed34996cf4c8c0f58113c0) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0018-ip-address-fix-stats64-JSON-object-name.patch b/0018-ip-address-fix-stats64-JSON-object-name.patch new file mode 100644 index 0000000..162ad5b --- /dev/null +++ b/0018-ip-address-fix-stats64-JSON-object-name.patch @@ -0,0 +1,38 @@ +From ef0a8addf8bb3678338a37be12eb55cfe748f0f9 Mon Sep 17 00:00:00 2001 +From: Jakub Kicinski +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 +Signed-off-by: Stephen Hemminger +(cherry picked from commit 7f536df7f30f340eed7c4e3c9fee6c8c1f6d8daa) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/0019-rdma-Check-return-value-of-strdup-call.patch b/0019-rdma-Check-return-value-of-strdup-call.patch new file mode 100644 index 0000000..6a112d2 --- /dev/null +++ b/0019-rdma-Check-return-value-of-strdup-call.patch @@ -0,0 +1,32 @@ +From af2cc3dd9200a73e93ed7bf3eb9cce29cd9c17dd Mon Sep 17 00:00:00 2001 +From: Leon Romanovsky +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 +Signed-off-by: Stephen Hemminger +(cherry picked from commit 5f8265536f6f511ec62d3a0ee7e1324a8720f7e3) +Signed-off-by: Phil Sutter +--- + 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 + diff --git a/README.etc b/README.etc deleted file mode 100644 index 6fc09c3..0000000 --- a/README.etc +++ /dev/null @@ -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. diff --git a/avpkt b/avpkt new file mode 100644 index 0000000..c362b94 --- /dev/null +++ b/avpkt @@ -0,0 +1 @@ +AVPKT=3000 diff --git a/cbq-0000.example b/cbq-0000.example new file mode 100644 index 0000000..5503374 --- /dev/null +++ b/cbq-0000.example @@ -0,0 +1,5 @@ +DEVICE=eth0,10Mbit,1Mbit +RATE=128Kbit +WEIGHT=10Kbit +PRIO=5 +RULE=192.168.1.0/24 diff --git a/iproute.spec b/iproute.spec index 77088b9..f2457c5 100644 --- a/iproute.spec +++ b/iproute.spec @@ -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 - 4.14.1-5 +- Add further upstream suggested backports. + +* Mon Dec 11 2017 Phil Sutter - 4.14.1-4 +- Add missing patch files. + +* Mon Dec 11 2017 Phil Sutter - 4.14.1-3 +- Add upstream suggested backports. +- Make use of %%autosetup macro. + +* Wed Nov 15 2017 Phil Sutter - 4.14.1-2 +- Drop unused build dependencies + +* Wed Nov 15 2017 Phil Sutter - 4.14.1-1 +- New version 4.14.1 + +* Tue Sep 19 2017 Phil Sutter - 4.13.0-1 +- New version 4.13.0 + +* Fri Jul 21 2017 Phil Sutter - 4.12.0-1 +- New version 4.12.0 + +* Tue May 23 2017 Phil Sutter - 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 - 4.10.0-3 +- don't build docs for module builds to limit dependencies + +* Fri Mar 17 2017 Phil Sutter - 4.10.0-2 +- Add two fixes to 4.10.0 release from upstream. + +* Tue Mar 14 2017 Phil Sutter - 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 - 4.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 2 2017 Thomas Woerner - 4.9.0-3 +- Release bump for iptables-1.6.1 (libxtables.so.12) + +* Sat Jan 28 2017 Phil Sutter - 4.9.0-2 +- Fix for failing 'make install' + +* Sat Jan 28 2017 Phil Sutter - 4.9.0-1 +- New version 4.9.0 + +* Fri Jan 13 2017 Phil Sutter - 4.8.0-2 +- Fix segfault in xt action + +* Wed Nov 30 2016 Phil Sutter - 4.8.0-1 +- New version 4.8.0 + +* Wed Aug 10 2016 Phil Sutter - 4.7.0-1 +- New version 4.7.0 + +* Wed May 04 2016 Phil Sutter - 4.6.0-1 +- New version 4.6.0 + +* Wed Apr 13 2016 Thomas Woerner - 4.5.0-4 +- Rebuild for new iptables-1.6.0 with libxtables so bump + +* Fri Apr 08 2016 Phil Sutter - 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 - 4.5.0-2 +- Split tc into it's own subpackage + +* Fri Mar 18 2016 Phil Sutter - 4.5.0-1 +- New version 4.5.0 + +* Thu Feb 04 2016 Fedora Release Engineering - 4.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 19 2016 Phil Sutter - 4.4.0-1 +- New version 4.4.0 + +* Sun Oct 04 2015 Phil Sutter - 4.2.0-4 +- Simplify RPM install stage by using package's install target + +* Sun Oct 04 2015 Phil Sutter - 4.2.0-3 +- Add missing build dependency to libmnl-devel +- Ship tipc utility + +* Thu Sep 24 2015 Phil Sutter - 4.2.0-2 +- Add missing build dependency to libselinux-devel + +* Wed Sep 02 2015 Pavel Šimerda - 4.2.0-1 +- new version 4.2.0 + +* Tue Jul 07 2015 Pavel Šimerda - 4.1.1-1 +- new version 4.1.1 + +* Wed Jun 17 2015 Fedora Release Engineering - 4.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed May 13 2015 Pavel Šimerda - 4.0.0-3 +- remove patch rejected by upstream + +* Mon May 11 2015 Pavel Šimerda - 4.0.0-2 +- Remove patch rejected by upstream + +* Tue Apr 14 2015 Pavel Šimerda - 4.0.0-1 +- new version 4.0.0 + +* Fri Mar 13 2015 Pavel Šimerda - 3.19.0-1 +- new version 3.19.0 + +* Sat Oct 04 2014 Lubomir Rintel - 3.16.0-3 +- Backport fix for ip link add name regression that broke libvirt + +* Sat Aug 16 2014 Fedora Release Engineering - 3.16.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 05 2014 Petr Šabata - 3.16.0-1 +- 3.16 bump + +* Sat Jul 12 2014 Tom Callaway - 3.15.0-2 +- fix license handling + +* Thu Jun 12 2014 Petr Šabata - 3.15.0-1 +- 3.15.0 bump + +* Sat Jun 07 2014 Fedora Release Engineering - 3.14.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 06 2014 Petr Šabata - 3.14.0-2 +- Fix incorrect references in ss(8), #1092653 + +* Tue Apr 15 2014 Petr Šabata - 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 - 3.12.0-2 +- Drop libnl from dependencies (#1034454) + +* Mon Nov 25 2013 Petr Šabata - 3.12.0-1 +- 3.12.0 bump + +* Thu Nov 21 2013 Petr Šabata - 3.11.0-2 +- Fix the rtt time parsing again + +* Tue Oct 22 2013 Petr Šabata - 3.11.0-1 +- 3.11 bump + +* Tue Oct 01 2013 Petr Pisar - 3.10.0-8 +- Close file with bridge monitor file (bug #1011822) + +* Tue Sep 24 2013 Petr Pisar - 3.10.0-7 +- Add tc -OK option +- Document "bridge mdb" and "bridge monitor mdb" + +* Fri Aug 30 2013 Petr Šabata - 3.10.0-6 +- Fix lnstat -i properly this time + +* Thu Aug 29 2013 Petr Šabata - 3.10.0-5 +- Fix an 'ip link' hang (#996537) + +* Tue Aug 13 2013 Petr Šabata - 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 - 3.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 17 2013 Petr Šabata - 3.10.0-2 +- Fix the XFRM patch + +* Wed Jul 17 2013 Petr Šabata - 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 - 3.9.0-1 +- 3.9.0 bump + +* Thu Apr 25 2013 Petr Šabata - 3.8.0-4 +- ATM is available in Fedora only + +* Tue Mar 12 2013 Petr Šabata - 3.8.0-3 +- Mention the "up" argument in documentation and help outputs (#907468) + +* Mon Mar 04 2013 Petr Šabata - 3.8.0-2 +- Bump for 1.4.18 rebuild + +* Tue Feb 26 2013 Petr Šabata - 3.8.0-1 +- 3.8.0 bump + +* Fri Feb 08 2013 Petr Šabata - 3.7.0-2 +- Don't propogate mounts out of ip (#882047) + +* Wed Dec 12 2012 Petr Šabata - 3.7.0-1 +- 3.7.0 bump + +* Mon Nov 19 2012 Petr Šabata - 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 - 3.6.0-2 +- List all interfaces by default + +* Wed Oct 03 2012 Petr Šabata - 3.6.0-1 +- 3.6.0 bump + +* Thu Aug 30 2012 Petr Šabata - 3.5.1-2 +- Remove the explicit iptables dependency (#852840) + +* Tue Aug 14 2012 Petr Šabata - 3.5.1-1 +- 3.5.1 bugfix release bump +- Rename 'br' to 'bridge' + +* Mon Aug 06 2012 Petr Šabata - 3.5.0-2 +- Install the new bridge utility + +* Thu Aug 02 2012 Petr Šabata - 3.5.0-1 +- 3.5.0 bump +- Move to db5. + +* Thu Jul 19 2012 Fedora Release Engineering - 3.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue May 22 2012 Petr Šabata - 3.4.0-1 +- 3.4.0 bump +- Drop the print route patch (included upstream) + +* Mon Apr 30 2012 Petr Šabata - 3.3.0-2 +- Let's install rtmon too... (#814819) + +* Thu Mar 22 2012 Petr Šabata - 3.3.0-1 +- 3.3.0 bump +- Update source URL + +* Mon Feb 27 2012 Petr Šabata - 3.2.0-3 +- Address dangerous /tmp files security issue (CVE-2012-1088, #797881, #797878) + +* Fri Jan 27 2012 Petr Šabata - 3.2.0-2 +- Simplify the spec a bit thanks to the UsrMove feature + +* Fri Jan 06 2012 Petr Šabata - 3.2.0-1 +- 3.2.0 bump +- Removing a useless, now conflicting patch (initcwnd already decumented) + +* Thu Nov 24 2011 Petr Šabata - 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 - 2.6.39-6 +- ss -ul should display UDP CLOSED sockets (#691100) + +* Thu Oct 06 2011 Petr Sabata - 2.6.39-5 +- Fix ss, lnstat and arpd usage and manpages + +* Wed Sep 07 2011 Petr Sabata - 2.6.39-4 +- lnstat should dump (-d) to stdout instead of stderr (#736332) + +* Tue Jul 26 2011 Petr Sabata - 2.6.39-3 +- Rebuild for xtables7 + +* Tue Jul 12 2011 Petr Sabata - 2.6.39-2 +- Rebuild for xtables6 + +* Thu Jun 30 2011 Petr Sabata - 2.6.39-1 +- 2.6.39 bump + +* Wed Apr 27 2011 Petr Sabata - 2.6.38.1-4 +- Link [cr]tstat to lnstat + +* Wed Apr 27 2011 Petr Sabata - 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 - 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 - 2.6.38.1-1 +- 2.6.38.1 bump + +* Wed Mar 16 2011 Petr Sabata - 2.6.38-1 +- 2.6.38 bump + +* Wed Feb 09 2011 Fedora Release Engineering - 2.6.37-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 31 2011 Petr Sabata - 2.6.37-2 +- man-pages.patch update, ip(8) TYPE whitespace + +* Mon Jan 10 2011 Petr Sabata - 2.6.37-1 +- 2.6.37 upstream release +- ss(8) improvements patch removed (included upstream) + +* Wed Dec 08 2010 Petr Sabata - 2.6.35-10 +- fix a typo in ss(8) improvements patch, rhbz#661267 + +* Tue Nov 30 2010 Petr Sabata - 2.6.35-9 +- ss(8) improvements patch by jpopelka; should be included in 2.6.36 + +* Tue Nov 09 2010 Petr Sabata - 2.6.35-8 +- rhbz#641599, use the versioned path, man-pages.patch update, prep update + +* Tue Oct 12 2010 Petr Sabata - 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 - 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 - 2.6.35-4 +- Modified man-pages.patch to fix cbq manpage, rhbz#635877 + +* Tue Sep 21 2010 Petr Sabata - 2.6.35-3 +- Don't print routes with negative metric fix, rhbz#628739 + +* Wed Aug 18 2010 Petr Sabata - 2.6.35-2 +- 'ip route get' fix, iproute2-2.6.35-print-route.patch +- rhbz#622782 + +* Thu Aug 05 2010 Petr Sabata - 2.6.35-1 +- 2.6.35 version bump +- iproute2-tc-priority.patch removed (included in upstream now) + +* Thu Jul 08 2010 Petr Sabata - 2.6.34-5 +- Licensing guidelines compliance fix + +* Wed Jul 07 2010 Petr Sabata - 2.6.34-4 +- Requires: iptables >= 1.4.5, BuildRequires: iptables-devel >= 1.4.5 + +* Thu Jul 01 2010 Petr Sabata - 2.6.34-3 +- Build now runs ./configure to regenerate Makefile for ipt/xt detection + +* Mon Jun 21 2010 Petr Sabata - 2.6.34-2 +- iproute-tc-priority.patch, rhbz#586112 + +* Mon Jun 21 2010 Petr Sabata - 2.6.34-1 +- 2.6.34 version bump + +* Tue Apr 20 2010 Marcela Mašláňová - 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á - 2.6.33-1 +- update + +* Tue Jan 26 2010 Marcela Mašláňová - 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á - 2.6.31-1 +- update to 2.6.31 + +* Fri Nov 27 2009 Marcela Mašláňová - 2.6.29-5.1.20091106gita7a9ddbb +- 539232 patch cbq initscript + +* Fri Nov 27 2009 Marcela Mašláňová - 2.6.29-5.0.20091106gita7a9ddbb +- snapshot with kernel headers for 2.6.32 + +* Fri Oct 9 2009 Marcela Mašláňová - 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á - 2.6.29-5 +- create missing man pages + +* Fri Jul 24 2009 Fedora Release Engineering - 2.6.29-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Apr 23 2009 Marcela Mašláňová - 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á - 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á - 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 - 2.6.28-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 4 2009 Marcela Mašláňová - 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á - 2.6.28-1 +- previous two patches were included into 2.6.28 release. +- update + +* Mon Jan 12 2009 Marcela Mašláňová - 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 - 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 - 2.6.26-1 +- update to 2.6.26 +- clean patches + +* Tue Jul 22 2008 Marcela Maslanova - 2.6.25-5 +- fix iproute2-2.6.25-segfault.patch + +* Thu Jul 10 2008 Tom "spot" Callaway - 2.6.25-4 +- rebuild for new db4-4.7 + +* Thu Jul 3 2008 Marcela Maslanova - 2.6.25-3 +- 449933 instead of failing strncpy use copying byte after byte + +* Wed May 14 2008 Marcela Maslanova - 2.6.25-2 +- allow replay setting, solve also 444724 + +* Mon Apr 21 2008 Marcela Maslanova - 2.6.25-1 +- update +- remove patch for backward compatibility +- add patch for AEAD compatibility + +* Thu Feb 21 2008 Marcela Maslanova - 2.6.23-4 +- add creating ps file again. Fix was done in texlive + +* Wed Feb 6 2008 Marcela Maslanova - 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 - 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 - 2.6.23-1 +- new version from upstrem 2.3.23 + +* Tue Oct 23 2007 Marcela Maslanova - 2.6.22-5 +- move files from /usr/lib/tc to /usr/share/tc +- remove listing files twice + +* Fri Aug 31 2007 Marcela Maslanova - 2.6.22-3 +- package review #225903 + +* Mon Aug 27 2007 Jeremy Katz - 2.6.22-2 +- rebuild for new db4 + +* Wed Jul 11 2007 Radek Vokál - 2.6.22-1 +- upgrade to 2.6.22 + +* Mon Mar 19 2007 Radek Vokál - 2.6.20-2 +- fix broken tc-pfifo man page (#232891) + +* Thu Mar 15 2007 Radek Vokál - 2.6.20-1 +- upgrade to 2.6.20 + +* Fri Dec 15 2006 Radek Vokál - 2.6.19-1 +- upgrade to 2.6.19 + +* Mon Dec 11 2006 Radek Vokál - 2.6.18-5 +- fix snapshot version + +* Fri Dec 1 2006 Radek Vokál - 2.6.18-4 +- spec file cleanup +- one more rebuilt against db4 + +* Thu Nov 16 2006 Radek Vokál - 2.6.18-3 +- fix defective manpage for tc-pfifo (#215399) + +* Mon Nov 13 2006 Radek Vokál - 2.6.18-2 +- rebuilt against new db4 + +* Tue Oct 3 2006 Radek Vokal - 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 - 2.6.16-7 +- fix ip.8 man page, add initcwnd option + +* Sun Oct 01 2006 Jesse Keating - 2.6.16-6 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Tue Sep 19 2006 Radek Vokal - 2.6.16-5 +- fix crash when resolving ip address + +* Mon Aug 21 2006 Radek Vokál - 2.6.16-4 +- add LOWER_UP and DORMANT flags (#202199) +- use dist tag + +* Wed Jul 12 2006 Jesse Keating - 2.6.16-3.1 +- rebuild + +* Mon Jun 26 2006 Radek Vokál - 2.6.16-3 +- improve handling of initcwnd value (#179719) + +* Sun May 28 2006 Radek Vokál - 2.6.16-2 +- fix BuildRequires: flex (#193403) + +* Sun Mar 26 2006 Radek Vokál - 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 - 2.6.15-2 +- own /usr/lib/tc (#181953) +- obsoletes shapecfg (#182284) + +* Fri Feb 10 2006 Jesse Keating - 2.6.15-1.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.6.15-1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Jan 17 2006 Radek Vokal 2.6.15-1 +- upgrade to 2.6.15-060110 + +* Mon Dec 12 2005 Radek Vokal 2.6.14-11 +- rebuilt + +* Fri Dec 09 2005 Radek Vokal 2.6.14-10 +- remove backup of config files (#175302) + +* Fri Nov 11 2005 Radek Vokal 2.6.14-9 +- use tc manpages and cbq.init from source tarball (#172851) + +* Thu Nov 10 2005 Radek Vokal 2.6.14-8 +- new upstream source + +* Mon Oct 31 2005 Radek Vokal 2.6.14-7 +- add warning to ip tunnel add command (#128107) + +* Fri Oct 07 2005 Bill Nottingham 2.6.14-6 +- update from upstream (appears to fix #170111) + +* Fri Oct 07 2005 Radek Vokal 2.6.14-5 +- update from upstream +- fixed host_len size for memcpy (#168903) + +* Fri Sep 23 2005 Radek Vokal 2.6.14-4 +- add RPM_OPT_FLAGS + +* Mon Sep 19 2005 Radek Vokal 2.6.14-3 +- forget to apply the patch :( + +* Mon Sep 19 2005 Radek Vokal 2.6.14-2 +- make ip help work again (#168449) + +* Wed Sep 14 2005 Radek Vokal 2.6.14-1 +- upgrade to ss050901 for 2.6.14 kernel headers + +* Fri Aug 26 2005 Radek Vokal 2.6.13-3 +- added /sbin/cbq script and sample configuration files (#166301) + +* Fri Aug 19 2005 Radek Vokal 2.6.13-2 +- upgrade to iproute2-050816 + +* Thu Aug 11 2005 Radek Vokal 2.6.13-1 +- update to snapshot for 2.6.13+ kernel + +* Tue May 24 2005 Radek Vokal 2.6.11-2 +- removed useless initvar patch (#150798) +- new upstream source + +* Tue Mar 15 2005 Radek Vokal 2.6.11-1 +- update to iproute-2.6.11 + +* Fri Mar 04 2005 Radek Vokal 2.6.10-2 +- gcc4 rebuilt + +* Wed Feb 16 2005 Radek Vokal 2.6.10-1 +- update to iproute-2.6.10 + +* Thu Dec 23 2004 Radek Vokal 2.6.9-6 +- added arpd into sbin + +* Mon Nov 29 2004 Radek Vokal 2.6.9-5 +- debug info removed from makefile and from spec (#140891) + +* Tue Nov 16 2004 Radek Vokal 2.6.9-4 +- source file updated from snapshot version +- endian patch adding + +* Sat Sep 18 2004 Joshua Blanton 2.6.9-3 +- added installation of netem module for tc + +* Mon Sep 06 2004 Radek Vokal 2.6.9-2 +- fixed possible buffer owerflow, path by Steve Grubb + +* Wed Sep 01 2004 Radek Vokal 2.6.9-1 +- updated to iproute-2.6.9, spec file change, patches cleared + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Wed May 26 2004 Phil Knirsch 2.4.7-16 +- Took tons of manpages from debian, much more complete (#123952). + +* Thu May 06 2004 Phil Knirsch 2.4.7-15 +- rebuilt + +* Thu May 06 2004 Phil Knirsch 2.4.7-13.2 +- Built security errata version for FC1. + +* Wed Apr 21 2004 Phil Knirsch 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 +- rebuilt + +* Wed Nov 05 2003 Phil Knirsch 2.4.7-12 +- Security errata for netlink (CAN-2003-0856). + +* Thu Oct 23 2003 Phil Knirsch +- 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 +- rebuilt + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Thu Jan 16 2003 Phil Knirsch 2.4.7-7 +- Added htb3-tc patch from http://luxik.cdi.cz/~devik/qos/htb/ (#75486). + +* Fri Oct 11 2002 Bill Nottingham 2.4.7-6 +- remove flags patch at author's request + +* Fri Jun 21 2002 Tim Powers +- automated rebuild + +* Wed Jun 19 2002 Phil Knirsch 2.4.7-4 +- Don't forcibly strip binaries + +* Mon May 27 2002 Phil Knirsch 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 2.4.7-2 +- Added patch to fix crosscompiling by Adrian Linkins. + +* Fri Mar 15 2002 Phil Knirsch 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 +- allow setting of allmulti & promisc flags (#48669) + +* Mon Jul 02 2001 Than Ngo +- fix build problem in beehive if kernel-sources is not installed + +* Fri May 25 2001 Helge Deller +- 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 +- use the system headers - the included ones are broken +- ETH_P_ECHO went away + +* Sat Jan 6 2001 Jeff Johnson +- test for specific KERNEL_INCLUDE directories. + +* Thu Oct 12 2000 Than Ngo +- rebuild for 7.1 + +* Thu Oct 12 2000 Than Ngo +- add default configuration files for iproute (Bug #10549, #18887) + +* Tue Jul 25 2000 Jakub Jelinek +- fix include-glibc/ to cope with glibc 2.2 new resolver headers + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Sun Jun 18 2000 Than Ngo +- rebuilt in the new build environment +- use RPM macros +- handle RPM_OPT_FLAGS + +* Sat Jun 03 2000 Than Ngo +- fix iproute to build with new glibc + +* Fri May 26 2000 Ngo Than +- update to 2.2.4-now-ss000305 +- add configuration files + +* Mon Sep 13 1999 Bill Nottingham +- strip binaries + +* Mon Aug 16 1999 Cristian Gafton +- first build diff --git a/rt_dsfield.deprecated b/rt_dsfield.deprecated deleted file mode 100644 index c8eec63..0000000 --- a/rt_dsfield.deprecated +++ /dev/null @@ -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 diff --git a/sources b/sources index 9ad54ed..4c14c03 100644 --- a/sources +++ b/sources @@ -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 diff --git a/tests/bridge-utility/Makefile b/tests/bridge-utility/Makefile deleted file mode 100644 index a7f394f..0000000 --- a/tests/bridge-utility/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /CoreOS/iproute/Sanity/bridge-utility -# Description: Test basic bridge funcionality -# Author: David Spurek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 " > $(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) diff --git a/tests/bridge-utility/PURPOSE b/tests/bridge-utility/PURPOSE deleted file mode 100644 index f3bce23..0000000 --- a/tests/bridge-utility/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/bridge-utility -Description: Test basic bridge funcionality -Author: David Spurek diff --git a/tests/bridge-utility/runtest.sh b/tests/bridge-utility/runtest.sh deleted file mode 100755 index 0d510c3..0000000 --- a/tests/bridge-utility/runtest.sh +++ /dev/null @@ -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 -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/ip-address-label-sanity-test/Makefile b/tests/ip-address-label-sanity-test/Makefile deleted file mode 100644 index 612fadb..0000000 --- a/tests/ip-address-label-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-address-label-sanity-test/PURPOSE b/tests/ip-address-label-sanity-test/PURPOSE deleted file mode 100644 index d6db326..0000000 --- a/tests/ip-address-label-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-address-label-sanity-test -Description: Test basic ip address label funcionality -Author: Susant Sahani diff --git a/tests/ip-address-label-sanity-test/ip-address-label-tests.py b/tests/ip-address-label-sanity-test/ip-address-label-tests.py deleted file mode 100755 index 69557f1..0000000 --- a/tests/ip-address-label-sanity-test/ip-address-label-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-address-label-sanity-test/runtest.sh b/tests/ip-address-label-sanity-test/runtest.sh deleted file mode 100755 index ee04d3c..0000000 --- a/tests/ip-address-label-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-address-sanity-test/Makefile b/tests/ip-address-sanity-test/Makefile deleted file mode 100644 index d43d21d..0000000 --- a/tests/ip-address-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-address-sanity-test/PURPOSE b/tests/ip-address-sanity-test/PURPOSE deleted file mode 100644 index bcd1d83..0000000 --- a/tests/ip-address-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-address-sanity-test -Description: Test basic ip address funcionality -Author: Susant Sahani diff --git a/tests/ip-address-sanity-test/ip-address-tests.py b/tests/ip-address-sanity-test/ip-address-tests.py deleted file mode 100755 index 4b43b32..0000000 --- a/tests/ip-address-sanity-test/ip-address-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-address-sanity-test/runtest.sh b/tests/ip-address-sanity-test/runtest.sh deleted file mode 100755 index d95de6d..0000000 --- a/tests/ip-address-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-fou-sanity-test/Makefile b/tests/ip-fou-sanity-test/Makefile deleted file mode 100644 index b5985b2..0000000 --- a/tests/ip-fou-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-fou-sanity-test/PURPOSE b/tests/ip-fou-sanity-test/PURPOSE deleted file mode 100644 index d62d2ff..0000000 --- a/tests/ip-fou-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-fou-sanity-test -Description: Test basic ip fou funcionality -Author: Susant Sahani diff --git a/tests/ip-fou-sanity-test/ip-fou-tests.py b/tests/ip-fou-sanity-test/ip-fou-tests.py deleted file mode 100755 index b72b45f..0000000 --- a/tests/ip-fou-sanity-test/ip-fou-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-fou-sanity-test/runtest.sh b/tests/ip-fou-sanity-test/runtest.sh deleted file mode 100755 index 77123b7..0000000 --- a/tests/ip-fou-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-l2tp-sanity-test/Makefile b/tests/ip-l2tp-sanity-test/Makefile deleted file mode 100644 index 7040c7c..0000000 --- a/tests/ip-l2tp-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-l2tp-sanity-test/PURPOSE b/tests/ip-l2tp-sanity-test/PURPOSE deleted file mode 100644 index 4224b1d..0000000 --- a/tests/ip-l2tp-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-l2tp-sanity-test -Description: Test basic ip l2tp funcionality -Author: Susant Sahani diff --git a/tests/ip-l2tp-sanity-test/ip-l2tp-tests.py b/tests/ip-l2tp-sanity-test/ip-l2tp-tests.py deleted file mode 100755 index 1f20a14..0000000 --- a/tests/ip-l2tp-sanity-test/ip-l2tp-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-l2tp-sanity-test/runtest.sh b/tests/ip-l2tp-sanity-test/runtest.sh deleted file mode 100755 index 75b0589..0000000 --- a/tests/ip-l2tp-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-link-sanity-test/Makefile b/tests/ip-link-sanity-test/Makefile deleted file mode 100644 index cf63c96..0000000 --- a/tests/ip-link-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-link-sanity-test/PURPOSE b/tests/ip-link-sanity-test/PURPOSE deleted file mode 100644 index 146b66e..0000000 --- a/tests/ip-link-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-link-sanity-test -Description: Test basic ip link funcionality -Author: Susant Sahani diff --git a/tests/ip-link-sanity-test/ip-link-tests.py b/tests/ip-link-sanity-test/ip-link-tests.py deleted file mode 100755 index a13d952..0000000 --- a/tests/ip-link-sanity-test/ip-link-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-link-sanity-test/runtest.sh b/tests/ip-link-sanity-test/runtest.sh deleted file mode 100755 index 65daf1f..0000000 --- a/tests/ip-link-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-neigh-sanity-test/Makefile b/tests/ip-neigh-sanity-test/Makefile deleted file mode 100644 index fdff35f..0000000 --- a/tests/ip-neigh-sanity-test/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /CoreOS/iproute/Sanity/ip-neigh-sanity-test -# Description: Test basic ip neigh functionality -# Author: Jaroslav Aster -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 " > $(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) diff --git a/tests/ip-neigh-sanity-test/PURPOSE b/tests/ip-neigh-sanity-test/PURPOSE deleted file mode 100644 index 189a8e2..0000000 --- a/tests/ip-neigh-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-neigh-sanity-test -Description: Test basic ip neigh funcionality -Author: Jaroslav Aster diff --git a/tests/ip-neigh-sanity-test/runtest.sh b/tests/ip-neigh-sanity-test/runtest.sh deleted file mode 100644 index 0930b01..0000000 --- a/tests/ip-neigh-sanity-test/runtest.sh +++ /dev/null @@ -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 -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/ip-neighbor-sanity-test/Makefile b/tests/ip-neighbor-sanity-test/Makefile deleted file mode 100644 index 67178fd..0000000 --- a/tests/ip-neighbor-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-neighbor-sanity-test/PURPOSE b/tests/ip-neighbor-sanity-test/PURPOSE deleted file mode 100644 index cad9d8d..0000000 --- a/tests/ip-neighbor-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-neighbor-sanity-test -Description: Test basic ip neighbor funcionality -Author: Susant Sahani diff --git a/tests/ip-neighbor-sanity-test/ip-neighbor-tests.py b/tests/ip-neighbor-sanity-test/ip-neighbor-tests.py deleted file mode 100755 index 940bdb0..0000000 --- a/tests/ip-neighbor-sanity-test/ip-neighbor-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-neighbor-sanity-test/runtest.sh b/tests/ip-neighbor-sanity-test/runtest.sh deleted file mode 100755 index dd5aba5..0000000 --- a/tests/ip-neighbor-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-netns-sanity-test/Makefile b/tests/ip-netns-sanity-test/Makefile deleted file mode 100644 index f4cfc49..0000000 --- a/tests/ip-netns-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-netns-sanity-test/PURPOSE b/tests/ip-netns-sanity-test/PURPOSE deleted file mode 100644 index 169a84d..0000000 --- a/tests/ip-netns-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-netns-sanity-test -Description: Test basic ip netns funcionality -Author: Susant Sahani diff --git a/tests/ip-netns-sanity-test/ip-netns-tests.py b/tests/ip-netns-sanity-test/ip-netns-tests.py deleted file mode 100755 index 78bcb8a..0000000 --- a/tests/ip-netns-sanity-test/ip-netns-tests.py +++ /dev/null @@ -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 -# 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: ") - 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)) diff --git a/tests/ip-netns-sanity-test/runtest.sh b/tests/ip-netns-sanity-test/runtest.sh deleted file mode 100755 index c0276fd..0000000 --- a/tests/ip-netns-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-route-sanity-test/Makefile b/tests/ip-route-sanity-test/Makefile deleted file mode 100644 index 0b21130..0000000 --- a/tests/ip-route-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-route-sanity-test/PURPOSE b/tests/ip-route-sanity-test/PURPOSE deleted file mode 100644 index 792d9ba..0000000 --- a/tests/ip-route-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-route-sanity-test -Description: Test basic ip route funcionality -Author: Susant Sahani diff --git a/tests/ip-route-sanity-test/ip-route-tests.py b/tests/ip-route-sanity-test/ip-route-tests.py deleted file mode 100755 index 2845cae..0000000 --- a/tests/ip-route-sanity-test/ip-route-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-route-sanity-test/runtest.sh b/tests/ip-route-sanity-test/runtest.sh deleted file mode 100755 index 13340fc..0000000 --- a/tests/ip-route-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-rule-sanity-test/Makefile b/tests/ip-rule-sanity-test/Makefile deleted file mode 100644 index 13181bc..0000000 --- a/tests/ip-rule-sanity-test/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /CoreOS/iproute/Sanity/ip-rule-sanity-test -# Description: Test basic ip rule functionality -# Author: Jaroslav Aster -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 " > $(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) diff --git a/tests/ip-rule-sanity-test/PURPOSE b/tests/ip-rule-sanity-test/PURPOSE deleted file mode 100644 index ecffb48..0000000 --- a/tests/ip-rule-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-rule-sanity-test -Description: Test basic ip rule funcionality -Author: Jaroslav Aster diff --git a/tests/ip-rule-sanity-test/runtest.sh b/tests/ip-rule-sanity-test/runtest.sh deleted file mode 100644 index d094b20..0000000 --- a/tests/ip-rule-sanity-test/runtest.sh +++ /dev/null @@ -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 -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/ip-token-sanity-test/Makefile b/tests/ip-token-sanity-test/Makefile deleted file mode 100644 index ac08865..0000000 --- a/tests/ip-token-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-token-sanity-test/PURPOSE b/tests/ip-token-sanity-test/PURPOSE deleted file mode 100644 index 21b7c1d..0000000 --- a/tests/ip-token-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-token-sanity-test -Description: Test basic ip token funcionality -Author: Susant Sahani diff --git a/tests/ip-token-sanity-test/ip-token-tests.py b/tests/ip-token-sanity-test/ip-token-tests.py deleted file mode 100755 index 138168b..0000000 --- a/tests/ip-token-sanity-test/ip-token-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-token-sanity-test/runtest.sh b/tests/ip-token-sanity-test/runtest.sh deleted file mode 100755 index 82a0ab5..0000000 --- a/tests/ip-token-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-tunnel-sanity-test/Makefile b/tests/ip-tunnel-sanity-test/Makefile deleted file mode 100644 index cffa119..0000000 --- a/tests/ip-tunnel-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-tunnel-sanity-test/PURPOSE b/tests/ip-tunnel-sanity-test/PURPOSE deleted file mode 100644 index 0b8f618..0000000 --- a/tests/ip-tunnel-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-tunnel-sanity-test -Description: Test basic ip tunnel funcionality -Author: Susant Sahani diff --git a/tests/ip-tunnel-sanity-test/ip-tunnel-tests.py b/tests/ip-tunnel-sanity-test/ip-tunnel-tests.py deleted file mode 100755 index 58b7641..0000000 --- a/tests/ip-tunnel-sanity-test/ip-tunnel-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-tunnel-sanity-test/runtest.sh b/tests/ip-tunnel-sanity-test/runtest.sh deleted file mode 100755 index 58a154d..0000000 --- a/tests/ip-tunnel-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/ip-tuntap-sanity-test/Makefile b/tests/ip-tuntap-sanity-test/Makefile deleted file mode 100644 index 5f35f52..0000000 --- a/tests/ip-tuntap-sanity-test/Makefile +++ /dev/null @@ -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 -# 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 " > $(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) diff --git a/tests/ip-tuntap-sanity-test/PURPOSE b/tests/ip-tuntap-sanity-test/PURPOSE deleted file mode 100644 index 7c6223a..0000000 --- a/tests/ip-tuntap-sanity-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /CoreOS/iproute/Sanity/ip-tuntap-sanity-test -Description: Test basic ip tuntap funcionality -Author: Susant Sahani diff --git a/tests/ip-tuntap-sanity-test/ip-tuntap-tests.py b/tests/ip-tuntap-sanity-test/ip-tuntap-tests.py deleted file mode 100755 index 9f59a9f..0000000 --- a/tests/ip-tuntap-sanity-test/ip-tuntap-tests.py +++ /dev/null @@ -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 -# 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)) diff --git a/tests/ip-tuntap-sanity-test/runtest.sh b/tests/ip-tuntap-sanity-test/runtest.sh deleted file mode 100755 index 00bfe05..0000000 --- a/tests/ip-tuntap-sanity-test/runtest.sh +++ /dev/null @@ -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 -# 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 diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index ae233e0..0000000 --- a/tests/tests.yml +++ /dev/null @@ -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