Lines Matching refs:tb
95 int tb; member
127 int filter_nlmsg(struct nlmsghdr *n, struct rtattr **tb, int host_len) in filter_nlmsg() argument
137 table = rtm_get_table(r, tb); in filter_nlmsg()
146 if (filter.tb) { in filter_nlmsg()
147 if (filter.tb == RT_TABLE_LOCAL) { in filter_nlmsg()
150 } else if (filter.tb == RT_TABLE_MAIN) { in filter_nlmsg()
158 if (filter.tb > 0 && filter.tb != table) in filter_nlmsg()
190 if (tb[RTA_DST]) in filter_nlmsg()
191 memcpy(&dst.data, RTA_DATA(tb[RTA_DST]), (r->rtm_dst_len+7)/8); in filter_nlmsg()
195 if (tb[RTA_SRC]) in filter_nlmsg()
196 memcpy(&src.data, RTA_DATA(tb[RTA_SRC]), (r->rtm_src_len+7)/8); in filter_nlmsg()
201 if (tb[RTA_GATEWAY]) in filter_nlmsg()
202 memcpy(&via.data, RTA_DATA(tb[RTA_GATEWAY]), host_len/8); in filter_nlmsg()
207 if (tb[RTA_PREFSRC]) in filter_nlmsg()
208 memcpy(&prefsrc.data, RTA_DATA(tb[RTA_PREFSRC]), host_len/8); in filter_nlmsg()
229 if (tb[RTA_FLOW]) in filter_nlmsg()
230 realms = rta_getattr_u32(tb[RTA_FLOW]); in filter_nlmsg()
236 if (tb[RTA_IIF]) in filter_nlmsg()
237 iif = *(int*)RTA_DATA(tb[RTA_IIF]); in filter_nlmsg()
243 if (tb[RTA_OIF]) in filter_nlmsg()
244 oif = *(int*)RTA_DATA(tb[RTA_OIF]); in filter_nlmsg()
250 if (tb[RTA_MARK]) in filter_nlmsg()
251 mark = *(int *)RTA_DATA(tb[RTA_MARK]); in filter_nlmsg()
259 tb[RTA_PRIORITY] && in filter_nlmsg()
260 *(int*)RTA_DATA(tb[RTA_PRIORITY]) == -1) in filter_nlmsg()
285 struct rtattr * tb[RTA_MAX+1]; in print_route() local
307 parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len); in print_route()
308 table = rtm_get_table(r, tb); in print_route()
310 if (!filter_nlmsg(n, tb, host_len)) in print_route()
335 if (tb[RTA_DST]) { in print_route()
338 RTA_PAYLOAD(tb[RTA_DST]), in print_route()
339 RTA_DATA(tb[RTA_DST]), in print_route()
345 RTA_PAYLOAD(tb[RTA_DST]), in print_route()
346 RTA_DATA(tb[RTA_DST]), in print_route()
355 if (tb[RTA_SRC]) { in print_route()
358 RTA_PAYLOAD(tb[RTA_SRC]), in print_route()
359 RTA_DATA(tb[RTA_SRC]), in print_route()
365 RTA_PAYLOAD(tb[RTA_SRC]), in print_route()
366 RTA_DATA(tb[RTA_SRC]), in print_route()
378 if (tb[RTA_GATEWAY] && filter.rvia.bitlen != host_len) { in print_route()
381 RTA_PAYLOAD(tb[RTA_GATEWAY]), in print_route()
382 RTA_DATA(tb[RTA_GATEWAY]), in print_route()
385 if (tb[RTA_OIF] && filter.oifmask != -1) in print_route()
386 fprintf(fp, "dev %s ", ll_index_to_name(*(int*)RTA_DATA(tb[RTA_OIF]))); in print_route()
389 if (table != RT_TABLE_MAIN && !filter.tb) in print_route()
396 if (tb[RTA_PREFSRC] && filter.rprefsrc.bitlen != host_len) { in print_route()
402 RTA_PAYLOAD(tb[RTA_PREFSRC]), in print_route()
403 RTA_DATA(tb[RTA_PREFSRC]), in print_route()
406 if (tb[RTA_PRIORITY]) in print_route()
407 fprintf(fp, " metric %u ", rta_getattr_u32(tb[RTA_PRIORITY])); in print_route()
416 if (tb[RTA_MARK]) { in print_route()
417 unsigned int mark = *(unsigned int*)RTA_DATA(tb[RTA_MARK]); in print_route()
426 if (tb[RTA_UID]) in print_route()
427 fprintf(fp, " uid %u ", rta_getattr_u32(tb[RTA_UID])); in print_route()
429 if (tb[RTA_FLOW] && filter.realmmask != ~0U) { in print_route()
430 __u32 to = rta_getattr_u32(tb[RTA_FLOW]); in print_route()
468 if (tb[RTA_CACHEINFO]) { in print_route()
469 struct rta_cacheinfo *ci = RTA_DATA(tb[RTA_CACHEINFO]); in print_route()
492 if (tb[RTA_CACHEINFO]) in print_route()
493 ci = RTA_DATA(tb[RTA_CACHEINFO]); in print_route()
516 if (tb[RTA_METRICS]) { in print_route()
521 parse_rtattr(mxrta, RTAX_MAX, RTA_DATA(tb[RTA_METRICS]), in print_route()
522 RTA_PAYLOAD(tb[RTA_METRICS])); in print_route()
564 if (tb[RTA_IIF] && filter.iifmask != -1) { in print_route()
565 fprintf(fp, " iif %s", ll_index_to_name(*(int*)RTA_DATA(tb[RTA_IIF]))); in print_route()
567 if (tb[RTA_MULTIPATH]) { in print_route()
568 struct rtnexthop *nh = RTA_DATA(tb[RTA_MULTIPATH]); in print_route()
571 len = RTA_PAYLOAD(tb[RTA_MULTIPATH]); in print_route()
586 parse_rtattr(tb, RTA_MAX, RTNH_DATA(nh), nh->rtnh_len - sizeof(*nh)); in print_route()
587 if (tb[RTA_GATEWAY]) { in print_route()
590 RTA_PAYLOAD(tb[RTA_GATEWAY]), in print_route()
591 RTA_DATA(tb[RTA_GATEWAY]), in print_route()
594 if (tb[RTA_FLOW]) { in print_route()
595 __u32 to = rta_getattr_u32(tb[RTA_FLOW]); in print_route()
1075 struct rtattr *tb[RTA_MAX+1]; in save_route() local
1085 parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len); in save_route()
1087 if (!filter_nlmsg(n, tb, host_len)) in save_route()
1113 filter.tb = RT_TABLE_MAIN; in iproute_list_flush_or_save()
1126 filter.tb = 0; in iproute_list_flush_or_save()
1135 filter.tb = tid; in iproute_list_flush_or_save()
1243 if (do_ipv6 == AF_UNSPEC && filter.tb) in iproute_list_flush_or_save()
1470 struct rtattr * tb[RTA_MAX+1]; in iproute_get() local
1487 parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len); in iproute_get()
1489 if (tb[RTA_PREFSRC]) { in iproute_get()
1490 tb[RTA_PREFSRC]->rta_type = RTA_SRC; in iproute_get()
1491 r->rtm_src_len = 8*RTA_PAYLOAD(tb[RTA_PREFSRC]); in iproute_get()
1492 } else if (!tb[RTA_SRC]) { in iproute_get()
1496 if (!odev && tb[RTA_OIF]) in iproute_get()
1497 tb[RTA_OIF]->rta_type = 0; in iproute_get()
1498 if (tb[RTA_GATEWAY]) in iproute_get()
1499 tb[RTA_GATEWAY]->rta_type = 0; in iproute_get()
1500 if (!idev && tb[RTA_IIF]) in iproute_get()
1501 tb[RTA_IIF]->rta_type = 0; in iproute_get()