On 6/22/19 12:00 PM, Denis Kirjanov wrote: > @@ -365,13 +367,45 @@ static void print_vfinfo(FILE *fp, struct rtattr *vfinfo) > parse_rtattr_nested(vf, IFLA_VF_MAX, vfinfo); > > vf_mac = RTA_DATA(vf[IFLA_VF_MAC]); > + vf_broadcast = RTA_DATA(vf[IFLA_VF_BROADCAST]); > vf_tx_rate = RTA_DATA(vf[IFLA_VF_TX_RATE]); > > print_string(PRINT_FP, NULL, "%s ", _SL_); > print_int(PRINT_ANY, "vf", "vf %d ", vf_mac->vf); > - print_string(PRINT_ANY, "mac", "MAC %s", > - ll_addr_n2a((unsigned char *) &vf_mac->mac, > - ETH_ALEN, 0, b1, sizeof(b1))); > + > + print_string(PRINT_ANY, > + "link_type", > + " link/%s ", > + ll_type_n2a(ifi->ifi_type, b1, sizeof(b1))); > + > + print_color_string(PRINT_ANY, > + COLOR_MAC, > + "address", > + "%s", > + ll_addr_n2a((unsigned char *) &vf_mac->mac, > + ifi->ifi_type == ARPHRD_ETHER ? > + ETH_ALEN : INFINIBAND_ALEN, > + ifi->ifi_type, > + b1, sizeof(b1))); you still have a lot of lines that are not lined up column wise. See how the COLOR_MAC is offset to the right from PRINT_ANY? > + > + if (vf[IFLA_VF_BROADCAST]) { > + if (ifi->ifi_flags&IFF_POINTOPOINT) { > + print_string(PRINT_FP, NULL, " peer ", NULL); > + print_bool(PRINT_JSON, > + "link_pointtopoint", NULL, true); > + } else > + print_string(PRINT_FP, NULL, " brd ", NULL); > + > + print_color_string(PRINT_ANY, > + COLOR_MAC, > + "broadcast", > + "%s", > + ll_addr_n2a((unsigned char *) &vf_broadcast->broadcast, > + ifi->ifi_type == ARPHRD_ETHER ? > + ETH_ALEN : INFINIBAND_ALEN, > + ifi->ifi_type, > + b1, sizeof(b1))); And then these lines are offset to the left.