Lines Matching refs:tb
163 static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1])
167 if (tb[IFLA_TXQLEN])
168 qlen = rta_getattr_u32(tb[IFLA_TXQLEN]);
176 strcpy(ifr.ifr_name, rta_getattr_str(tb[IFLA_IFNAME]));
193 static void print_linkmode(FILE *f, struct rtattr *tb)
195 unsigned int mode = rta_getattr_u8(tb);
209 static char *parse_link_kind(struct rtattr *tb, bool slave)
214 parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb);
222 static int match_link_kind(struct rtattr **tb, const char *kind, bool slave)
224 if (!tb[IFLA_LINKINFO])
227 return strcmp(parse_link_kind(tb[IFLA_LINKINFO], slave), kind);
230 static void print_linktype(FILE *fp, struct rtattr *tb)
237 parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb);
301 struct rtattr *tb[IFLA_INET6_MAX + 1];
307 parse_rtattr_nested(tb, IFLA_INET6_MAX, inet6_attr);
309 if (tb[IFLA_INET6_ADDR_GEN_MODE]) {
310 __u8 mode = rta_getattr_u8(tb[IFLA_INET6_ADDR_GEN_MODE]);
889 static void __print_link_stats(FILE *fp, struct rtattr **tb)
891 const struct rtattr *carrier_changes = tb[IFLA_CARRIER_CHANGES];
893 if (tb[IFLA_STATS64]) {
896 memcpy(&stats, RTA_DATA(tb[IFLA_STATS64]),
897 MIN(RTA_PAYLOAD(tb[IFLA_STATS64]), sizeof(stats)));
900 } else if (tb[IFLA_STATS]) {
903 memcpy(&stats, RTA_DATA(tb[IFLA_STATS]),
904 MIN(RTA_PAYLOAD(tb[IFLA_STATS]), sizeof(stats)));
913 struct rtattr *tb[IFLA_MAX+1];
915 parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi),
917 __print_link_stats(fp, tb);
927 struct rtattr *tb[IFLA_MAX+1];
948 parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
949 if (tb[IFLA_IFNAME] == NULL) {
953 name = rta_getattr_str(tb[IFLA_IFNAME]);
958 fnmatch(pfilter->label, RTA_DATA(tb[IFLA_IFNAME]), 0))
961 if (tb[IFLA_GROUP]) {
962 int group = rta_getattr_u32(tb[IFLA_GROUP]);
968 if (tb[IFLA_MASTER]) {
969 int master = rta_getattr_u32(tb[IFLA_MASTER]);
976 if (pfilter->kind && match_link_kind(tb, pfilter->kind, 0))
979 if (pfilter->slave_kind && match_link_kind(tb, pfilter->slave_kind, 1))
985 if (tb[IFLA_LINK]) {
987 int iflink = rta_getattr_u32(tb[IFLA_LINK]);
1006 if (tb[IFLA_OPERSTATE])
1007 print_operstate(fp, rta_getattr_u8(tb[IFLA_OPERSTATE]));
1012 if (tb[IFLA_ADDRESS]) {
1016 RTA_DATA(tb[IFLA_ADDRESS]),
1017 RTA_PAYLOAD(tb[IFLA_ADDRESS]),
1058 struct rtattr *tb[IFLA_MAX+1];
1074 parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
1075 if (tb[IFLA_IFNAME] == NULL)
1080 fnmatch(filter.label, RTA_DATA(tb[IFLA_IFNAME]), 0))
1083 if (tb[IFLA_GROUP]) {
1084 int group = rta_getattr_u32(tb[IFLA_GROUP]);
1090 if (tb[IFLA_MASTER]) {
1091 int master = rta_getattr_u32(tb[IFLA_MASTER]);
1098 if (filter.kind && match_link_kind(tb, filter.kind, 0))
1101 if (filter.slave_kind && match_link_kind(tb, filter.slave_kind, 1))
1108 if (tb[IFLA_IFNAME]) {
1112 rta_getattr_str(tb[IFLA_IFNAME]));
1119 if (tb[IFLA_LINK]) {
1120 int iflink = rta_getattr_u32(tb[IFLA_LINK]);
1125 if (tb[IFLA_LINK_NETNSID])
1144 if (tb[IFLA_MTU])
1147 rta_getattr_u32(tb[IFLA_MTU]));
1148 if (tb[IFLA_XDP])
1149 xdp_dump(fp, tb[IFLA_XDP], do_link, false);
1150 if (tb[IFLA_QDISC])
1154 rta_getattr_str(tb[IFLA_QDISC]));
1155 if (tb[IFLA_MASTER]) {
1161 ll_idx_n2a(rta_getattr_u32(tb[IFLA_MASTER]), b1));
1164 if (tb[IFLA_OPERSTATE])
1165 print_operstate(fp, rta_getattr_u8(tb[IFLA_OPERSTATE]));
1167 if (do_link && tb[IFLA_LINKMODE])
1168 print_linkmode(fp, tb[IFLA_LINKMODE]);
1170 if (tb[IFLA_GROUP]) {
1172 int group = rta_getattr_u32(tb[IFLA_GROUP]);
1181 print_queuelen(fp, tb);
1183 if (tb[IFLA_EVENT])
1184 print_link_event(fp, rta_getattr_u32(tb[IFLA_EVENT]));
1194 if (tb[IFLA_ADDRESS]) {
1199 ll_addr_n2a(RTA_DATA(tb[IFLA_ADDRESS]),
1200 RTA_PAYLOAD(tb[IFLA_ADDRESS]),
1204 if (tb[IFLA_BROADCAST]) {
1216 ll_addr_n2a(RTA_DATA(tb[IFLA_BROADCAST]),
1217 RTA_PAYLOAD(tb[IFLA_BROADCAST]),
1223 if (tb[IFLA_LINK_NETNSID]) {
1224 int id = rta_getattr_u32(tb[IFLA_LINK_NETNSID]);
1238 if (tb[IFLA_PROTO_DOWN]) {
1239 if (rta_getattr_u8(tb[IFLA_PROTO_DOWN]))
1245 if (tb[IFLA_PROMISCUITY])
1249 rta_getattr_u32(tb[IFLA_PROMISCUITY]));
1251 if (tb[IFLA_LINKINFO])
1252 print_linktype(fp, tb[IFLA_LINKINFO]);
1254 if (do_link && tb[IFLA_AF_SPEC])
1255 print_af_spec(fp, tb[IFLA_AF_SPEC]);
1257 if (tb[IFLA_NUM_TX_QUEUES])
1261 rta_getattr_u32(tb[IFLA_NUM_TX_QUEUES]));
1263 if (tb[IFLA_NUM_RX_QUEUES])
1267 rta_getattr_u32(tb[IFLA_NUM_RX_QUEUES]));
1269 if (tb[IFLA_GSO_MAX_SIZE])
1273 rta_getattr_u32(tb[IFLA_GSO_MAX_SIZE]));
1275 if (tb[IFLA_GSO_MAX_SEGS])
1279 rta_getattr_u32(tb[IFLA_GSO_MAX_SEGS]));
1281 if (tb[IFLA_PHYS_PORT_NAME])
1285 rta_getattr_str(tb[IFLA_PHYS_PORT_NAME]));
1287 if (tb[IFLA_PHYS_PORT_ID]) {
1293 RTA_DATA(tb[IFLA_PHYS_PORT_ID]),
1294 RTA_PAYLOAD(tb[IFLA_PHYS_PORT_ID]),
1298 if (tb[IFLA_PHYS_SWITCH_ID]) {
1303 hexstring_n2a(RTA_DATA(tb[IFLA_PHYS_SWITCH_ID]),
1304 RTA_PAYLOAD(tb[IFLA_PHYS_SWITCH_ID]),
1309 if ((do_link || show_details) && tb[IFLA_IFALIAS]) {
1314 rta_getattr_str(tb[IFLA_IFALIAS]));
1317 if ((do_link || show_details) && tb[IFLA_XDP])
1318 xdp_dump(fp, tb[IFLA_XDP], true, true);
1322 __print_link_stats(fp, tb);
1325 if ((do_link || show_details) && tb[IFLA_VFINFO_LIST] && tb[IFLA_NUM_VF]) {
1326 struct rtattr *i, *vflist = tb[IFLA_VFINFO_LIST];
1880 struct rtattr *tb[IFA_MAX + 1];
1891 parse_rtattr(tb, IFA_MAX, IFA_RTA(ifa), IFA_PAYLOAD(n));
1892 ifa_flags = get_ifa_flags(ifa, tb[IFA_FLAGS]);
1897 if (!tb[IFA_LOCAL])
1898 tb[IFA_LOCAL] = tb[IFA_ADDRESS];
1900 if (filter.pfx.family && tb[IFA_LOCAL]) {
1905 memcpy(&dst.data, RTA_DATA(tb[IFA_LOCAL]), RTA_PAYLOAD(tb[IFA_LOCAL]));
1913 if (tb[IFA_LABEL])
1914 label = RTA_DATA(tb[IFA_LABEL]);
2243 ipaddr_loop_each_vf(struct rtattr *tb[], int vfnum, int *min, int *max)
2245 struct rtattr *vflist = tb[IFLA_VFINFO_LIST];
2268 struct rtattr *tb[IFLA_MAX+1];
2290 parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
2292 if ((tb[IFLA_VFINFO_LIST] && tb[IFLA_NUM_VF])) {
2293 ipaddr_loop_each_vf(tb, vfnum, min, max);