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 <serhe.popovych@gmail.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
Serhey Popovych 2018-01-22 19:23:46 +02:00 committed by David Ahern
parent 00ff4b8e31
commit de54cdd3de
2 changed files with 20 additions and 16 deletions

View File

@ -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,23 +372,22 @@ 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);
}
}
} 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);
} else {
addattr_l(n, 1024, IFLA_GRE_COLLECT_METADATA, NULL, 0);
}
return 0;
}

View File

@ -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);