* [PATCH iproute2-next 1/2] ip/tunnel: Be consistent when printing tunnel collect metadata
2018-01-22 16:46 [PATCH iproute2-next 0/2] ip/tunnel: Unify collect metadata handling Serhey Popovych
@ 2018-01-22 16:46 ` Serhey Popovych
2018-01-22 16:58 ` Jiri Benc
2018-01-22 16:46 ` [PATCH iproute2-next 2/2] gre/gre6: Unify attribute addition to netlink buffer Serhey Popovych
1 sibling, 1 reply; 5+ messages in thread
From: Serhey Popovych @ 2018-01-22 16:46 UTC (permalink / raw)
To: netdev; +Cc: jbenc, u9012063, julien
Print only "external" if collect meta data attribute
is given: rest of parameters are irrelevant. This is
to follow gre6.
For JSON output use "collect_metadata" for iptnl, ip6tnl and
gre to match with vxlan, geneve and gre6 modules.
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
---
ip/link_gre.c | 27 ++++++++++++---------------
ip/link_ip6tnl.c | 6 ++++--
ip/link_iptnl.c | 6 ++++--
3 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/ip/link_gre.c b/ip/link_gre.c
index 674603b..131a087 100644
--- a/ip/link_gre.c
+++ b/ip/link_gre.c
@@ -395,7 +395,7 @@ get_failed:
return 0;
}
-static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
+static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
{
char s2[64];
const char *local = "any";
@@ -405,6 +405,14 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
__u8 ttl = 0;
__u8 tos = 0;
+ if (!tb)
+ return;
+
+ if (tb[IFLA_GRE_COLLECT_METADATA]) {
+ print_bool(PRINT_ANY, "collect_metadata", "external", true);
+ return;
+ }
+
if (tb[IFLA_GRE_REMOTE]) {
unsigned int addr = rta_getattr_u32(tb[IFLA_GRE_REMOTE]);
@@ -455,6 +463,9 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
print_bool(PRINT_JSON, "pmtudisc", NULL, true);
}
+ if (tb[IFLA_GRE_IGNORE_DF] && rta_getattr_u8(tb[IFLA_GRE_IGNORE_DF]))
+ print_bool(PRINT_ANY, "ignore_df", "ignore-df ", true);
+
if (tb[IFLA_GRE_IFLAGS])
iflags = rta_getattr_u16(tb[IFLA_GRE_IFLAGS]);
@@ -488,20 +499,6 @@ static void gre_print_direct_opt(FILE *f, struct rtattr *tb[])
"fwmark", "fwmark 0x%x ", fwmark);
}
}
-}
-
-static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
-{
- if (!tb)
- return;
-
- if (!tb[IFLA_GRE_COLLECT_METADATA])
- gre_print_direct_opt(f, tb);
- else
- print_bool(PRINT_ANY, "external", "external ", true);
-
- if (tb[IFLA_GRE_IGNORE_DF] && rta_getattr_u8(tb[IFLA_GRE_IGNORE_DF]))
- print_bool(PRINT_ANY, "ignore_df", "ignore-df ", true);
if (tb[IFLA_GRE_ERSPAN_INDEX]) {
__u32 erspan_idx = rta_getattr_u32(tb[IFLA_GRE_ERSPAN_INDEX]);
diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c
index 8f5c9bd..e4db643 100644
--- a/ip/link_ip6tnl.c
+++ b/ip/link_ip6tnl.c
@@ -341,8 +341,10 @@ static void ip6tunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb
if (!tb)
return;
- if (tb[IFLA_IPTUN_COLLECT_METADATA])
- print_bool(PRINT_ANY, "external", "external ", true);
+ if (tb[IFLA_IPTUN_COLLECT_METADATA]) {
+ print_bool(PRINT_ANY, "collect_metadata", "external", true);
+ return;
+ }
if (tb[IFLA_IPTUN_FLAGS])
flags = rta_getattr_u32(tb[IFLA_IPTUN_FLAGS]);
diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c
index ce3855c..93a1eb4 100644
--- a/ip/link_iptnl.c
+++ b/ip/link_iptnl.c
@@ -370,8 +370,10 @@ static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[
if (!tb)
return;
- if (tb[IFLA_IPTUN_COLLECT_METADATA])
- print_bool(PRINT_ANY, "external", "external ", true);
+ if (tb[IFLA_IPTUN_COLLECT_METADATA]) {
+ print_bool(PRINT_ANY, "collect_metadata", "external", true);
+ return;
+ }
if (tb[IFLA_IPTUN_PROTO]) {
switch (rta_getattr_u8(tb[IFLA_IPTUN_PROTO])) {
--
1.7.10.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH iproute2-next 2/2] gre/gre6: Unify attribute addition to netlink buffer
2018-01-22 16:46 [PATCH iproute2-next 0/2] ip/tunnel: Unify collect metadata handling Serhey Popovych
2018-01-22 16:46 ` [PATCH iproute2-next 1/2] ip/tunnel: Be consistent when printing tunnel collect metadata Serhey Popovych
@ 2018-01-22 16:46 ` Serhey Popovych
1 sibling, 0 replies; 5+ messages in thread
From: Serhey Popovych @ 2018-01-22 16:46 UTC (permalink / raw)
To: netdev; +Cc: jbenc, u9012063, julien
There are couple of minor improvements:
1) Check erspan_ver == 2 in gre6. It still could
be 1 if erspan_idx is 0.
2) Add tunnel encapsulation attributes only when
collect metadata not in effect in gre.
3) Trivial: address checkpatch issues.
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
---
ip/link_gre.c | 23 ++++++++++++-----------
ip/link_gre6.c | 13 ++++++++-----
2 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/ip/link_gre.c b/ip/link_gre.c
index 131a087..12c2e22 100644
--- a/ip/link_gre.c
+++ b/ip/link_gre.c
@@ -366,6 +366,8 @@ get_failed:
addattr_l(n, 1024, IFLA_GRE_LOCAL, &saddr, 4);
addattr_l(n, 1024, IFLA_GRE_REMOTE, &daddr, 4);
addattr_l(n, 1024, IFLA_GRE_PMTUDISC, &pmtudisc, 1);
+ if (ignore_df)
+ addattr8(n, 1024, IFLA_GRE_IGNORE_DF, ignore_df & 1);
if (link)
addattr32(n, 1024, IFLA_GRE_LINK, link);
addattr_l(n, 1024, IFLA_GRE_TTL, &ttl, 1);
@@ -374,24 +376,23 @@ get_failed:
if (erspan_ver) {
addattr8(n, 1024, IFLA_GRE_ERSPAN_VER, erspan_ver);
if (erspan_ver == 1 && erspan_idx != 0) {
- addattr32(n, 1024, IFLA_GRE_ERSPAN_INDEX, erspan_idx);
+ addattr32(n, 1024,
+ IFLA_GRE_ERSPAN_INDEX, erspan_idx);
} else if (erspan_ver == 2) {
- addattr8(n, 1024, IFLA_GRE_ERSPAN_DIR, erspan_dir);
- addattr16(n, 1024, IFLA_GRE_ERSPAN_HWID, erspan_hwid);
+ addattr8(n, 1024,
+ IFLA_GRE_ERSPAN_DIR, erspan_dir);
+ addattr16(n, 1024,
+ IFLA_GRE_ERSPAN_HWID, erspan_hwid);
}
}
+ addattr16(n, 1024, IFLA_GRE_ENCAP_TYPE, encaptype);
+ addattr16(n, 1024, IFLA_GRE_ENCAP_FLAGS, encapflags);
+ addattr16(n, 1024, IFLA_GRE_ENCAP_SPORT, htons(encapsport));
+ addattr16(n, 1024, IFLA_GRE_ENCAP_DPORT, htons(encapdport));
} else {
addattr_l(n, 1024, IFLA_GRE_COLLECT_METADATA, NULL, 0);
}
- addattr16(n, 1024, IFLA_GRE_ENCAP_TYPE, encaptype);
- addattr16(n, 1024, IFLA_GRE_ENCAP_FLAGS, encapflags);
- addattr16(n, 1024, IFLA_GRE_ENCAP_SPORT, htons(encapsport));
- addattr16(n, 1024, IFLA_GRE_ENCAP_DPORT, htons(encapdport));
-
- if (ignore_df)
- addattr8(n, 1024, IFLA_GRE_IGNORE_DF, ignore_df & 1);
-
return 0;
}
diff --git a/ip/link_gre6.c b/ip/link_gre6.c
index a0eeb5a..875d2dc 100644
--- a/ip/link_gre6.c
+++ b/ip/link_gre6.c
@@ -405,10 +405,13 @@ get_failed:
if (erspan_ver) {
addattr8(n, 1024, IFLA_GRE_ERSPAN_VER, erspan_ver);
if (erspan_ver == 1 && erspan_idx != 0) {
- addattr32(n, 1024, IFLA_GRE_ERSPAN_INDEX, erspan_idx);
- } else {
- addattr8(n, 1024, IFLA_GRE_ERSPAN_DIR, erspan_dir);
- addattr16(n, 1024, IFLA_GRE_ERSPAN_HWID, erspan_hwid);
+ addattr32(n, 1024,
+ IFLA_GRE_ERSPAN_INDEX, erspan_idx);
+ } else if (erspan_ver == 2) {
+ addattr8(n, 1024,
+ IFLA_GRE_ERSPAN_DIR, erspan_dir);
+ addattr16(n, 1024,
+ IFLA_GRE_ERSPAN_HWID, erspan_hwid);
}
}
addattr16(n, 1024, IFLA_GRE_ENCAP_TYPE, encaptype);
@@ -645,7 +648,7 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
}
static void gre_print_help(struct link_util *lu, int argc, char **argv,
- FILE *f)
+ FILE *f)
{
print_usage(f);
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 5+ messages in thread