From: Serhey Popovych Date: Mon, 22 Jan 2018 17:23:46 +0000 (+0200) Subject: gre/gre6: Unify attribute addition to netlink buffer X-Git-Tag: v4.16.0~79^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de54cdd3de596f6b1712a3ede4c712b703c1fee3;p=thirdparty%2Fiproute2.git gre/gre6: Unify attribute addition to netlink buffer 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 Signed-off-by: David Ahern --- diff --git a/ip/link_gre.c b/ip/link_gre.c index c7e65fcfa..d91a435bc 100644 --- a/ip/link_gre.c +++ b/ip/link_gre.c @@ -362,6 +362,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); @@ -370,24 +372,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 3500b529a..b3f070ba6 100644 --- a/ip/link_gre6.c +++ b/ip/link_gre6.c @@ -406,10 +406,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); @@ -604,7 +607,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); }