summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2017-12-14 21:19:54 -0800
committerStephen Hemminger <stephen@networkplumber.org>2017-12-14 21:19:54 -0800
commitc189177efc3ebda4f4966985836a7a347ce49e5c (patch)
treecf94e0740a3cadcfaf0770d49572a77ccf801c8f
parent6231c5bec6d256f7861f39d3a578f5259f274cc4 (diff)
parent83cf5bc73b858608d59c3c6126a9f37e793e15dd (diff)
downloadiproute2-net-next.tar.gz
Merge branch 'master' into net-nextnet-next
-rw-r--r--ip/ipaddress.c2
-rw-r--r--ip/iplink.c2
-rw-r--r--ip/link_ip6tnl.c3
-rw-r--r--ip/link_iptnl.c3
-rw-r--r--tc/m_action.c4
5 files changed, 10 insertions, 4 deletions
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 8057011e..f150d919 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -74,7 +74,7 @@ static void usage(void)
fprintf(stderr, "CONFFLAG := [ home | nodad | mngtmpaddr | noprefixroute | autojoin ]\n");
fprintf(stderr, "LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]\n");
fprintf(stderr, "LFT := forever | SECONDS\n");
- fprintf(stderr, "TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |\n");
+ fprintf(stderr, "TYPE := { vlan | veth | vcan | vxcan | dummy | ifb | macvlan | macvtap |\n");
fprintf(stderr, " bridge | bond | ipoib | ip6tnl | ipip | sit | vxlan | lowpan |\n");
fprintf(stderr, " gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan | vti |\n");
fprintf(stderr, " nlmon | can | bond_slave | ipvlan | geneve | bridge_slave |\n");
diff --git a/ip/iplink.c b/ip/iplink.c
index 8ea5a99a..06b34427 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -118,7 +118,7 @@ void iplink_usage(void)
"\n"
" ip link help [ TYPE ]\n"
"\n"
- "TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |\n"
+ "TYPE := { vlan | veth | vcan | vxcan | dummy | ifb | macvlan | macvtap |\n"
" bridge | bond | team | ipoib | ip6tnl | ipip | sit | vxlan |\n"
" gre | gretap | erspan | ip6gre | ip6gretap | ip6erspan |\n"
" vti | nlmon | team_slave | bond_slave | ipvlan | geneve |\n"
diff --git a/ip/link_ip6tnl.c b/ip/link_ip6tnl.c
index 43287ab3..af796c30 100644
--- a/ip/link_ip6tnl.c
+++ b/ip/link_ip6tnl.c
@@ -345,6 +345,9 @@ 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_FLAGS])
flags = rta_getattr_u32(tb[IFLA_IPTUN_FLAGS]);
diff --git a/ip/link_iptnl.c b/ip/link_iptnl.c
index 4940b8b0..2804b8f4 100644
--- a/ip/link_iptnl.c
+++ b/ip/link_iptnl.c
@@ -393,6 +393,9 @@ 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_REMOTE]) {
unsigned int addr = rta_getattr_u32(tb[IFLA_IPTUN_REMOTE]);
diff --git a/tc/m_action.c b/tc/m_action.c
index 13f942bf..fc422364 100644
--- a/tc/m_action.c
+++ b/tc/m_action.c
@@ -378,7 +378,7 @@ tc_print_action(FILE *f, const struct rtattr *arg, unsigned short tot_acts)
}
}
- close_json_object();
+ close_json_array(PRINT_JSON, NULL);
return 0;
}
@@ -528,7 +528,7 @@ static int tc_action_gd(int cmd, unsigned int flags,
req.n.nlmsg_seq = rth.dump = ++rth.seq;
- if (rtnl_talk(&rth, &req.n, &ans) < 0) {
+ if (rtnl_talk(&rth, &req.n, cmd == RTM_DELACTION ? NULL : &ans) < 0) {
fprintf(stderr, "We have an error talking to the kernel\n");
return 1;
}