]> git.proxmox.com Git - mirror_iproute2.git/blobdiff - bridge/fdb.c
bridge: fdb: Fix for missing keywords in non-JSON output
[mirror_iproute2.git] / bridge / fdb.c
index 205b4faa99a2ac3f5244038b9e8582af05f147fc..6487fac579c20de7da73df026c9d97d63364d488 100644 (file)
@@ -36,7 +36,7 @@ static void usage(void)
 {
        fprintf(stderr,
                "Usage: bridge fdb { add | append | del | replace } ADDR dev DEV\n"
-               "              [ self ] [ master ] [ use ] [ router ]\n"
+               "              [ self ] [ master ] [ use ] [ router ] [ extern_learn ]\n"
                "              [ local | static | dynamic ] [ dst IPADDR ] [ vlan VID ]\n"
                "              [ port PORT] [ vni VNI ] [ via DEV ]\n"
                "       bridge fdb [ show [ br BRDEV ] [ brport DEV ] [ vlan VID ] [ state STATE ] ]\n");
@@ -182,7 +182,7 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
                if (!is_json_context())
                        fprintf(fp, "dev ");
                print_color_string(PRINT_ANY, COLOR_IFNAME,
-                                  "ifname", "%s ",
+                                  "ifname", "dev %s ",
                                   ll_index_to_name(r->ndm_ifindex));
        }
 
@@ -199,7 +199,7 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 
                print_color_string(PRINT_ANY,
                                   ifa_family_color(family),
-                                   "dst", "%s ", dst);
+                                   "dst", "dst %s ", dst);
        }
 
        if (vid)
@@ -246,7 +246,7 @@ int print_fdb(const struct sockaddr_nl *who, struct nlmsghdr *n, void *arg)
 
 
        if (tb[NDA_MASTER])
-               print_string(PRINT_ANY, "master", "%s ",
+               print_string(PRINT_ANY, "master", "master %s ",
                             ll_index_to_name(rta_getattr_u32(tb[NDA_MASTER])));
 
        print_string(PRINT_ANY, "state", "%s\n",
@@ -412,6 +412,8 @@ static int fdb_modify(int cmd, int flags, int argc, char **argv)
                        vid = atoi(*argv);
                } else if (matches(*argv, "use") == 0) {
                        req.ndm.ndm_flags |= NTF_USE;
+               } else if (matches(*argv, "extern_learn") == 0) {
+                       req.ndm.ndm_flags |= NTF_EXT_LEARNED;
                } else {
                        if (strcmp(*argv, "to") == 0)
                                NEXT_ARG();