Print VRF slave_info attributes if present.

Signed-off-by: David Ahern <d...@cumulusnetworks.com>
---
Requires IFLA_VRF_PORT_* from linux/if_link.h

 ip/iplink_vrf.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/ip/iplink_vrf.c b/ip/iplink_vrf.c
index 9b4b7728cf6f..abc796886a5f 100644
--- a/ip/iplink_vrf.c
+++ b/ip/iplink_vrf.c
@@ -64,6 +64,18 @@ static void vrf_print_opt(struct link_util *lu, FILE *f, 
struct rtattr *tb[])
                fprintf(f, "table %u ", rta_getattr_u32(tb[IFLA_VRF_TABLE]));
 }
 
+static void vrf_slave_print_opt(struct link_util *lu, FILE *f,
+                               struct rtattr *tb[])
+{
+       if (!tb)
+               return;
+
+       if (tb[IFLA_VRF_PORT_TABLE]) {
+               fprintf(f, "table %u ",
+                       rta_getattr_u32(tb[IFLA_VRF_PORT_TABLE]));
+       }
+}
+
 static void vrf_print_help(struct link_util *lu, int argc, char **argv,
                              FILE *f)
 {
@@ -77,3 +89,10 @@ struct link_util vrf_link_util = {
        .print_opt      = vrf_print_opt,
        .print_help     = vrf_print_help,
 };
+
+struct link_util vrf_slave_link_util = {
+        .id             = "vrf",
+        .maxattr        = IFLA_VRF_PORT_MAX,
+       .print_opt      = vrf_slave_print_opt,
+        .slave          = true,
+};
-- 
2.1.4

Reply via email to