Lines Matching defs:attr
471 int type, uint32_t attr) {
472 add_varlen_rtattr_to_buffer(rta, maxlen, type, (char*)&attr, sizeof(attr));
604 struct rtattr *attr = NULL;
639 attr = NLMSG_TAIL(&request.mhdr);
652 attr->rta_len = (void *)NLMSG_TAIL(&request.mhdr) - (void *)attr;
856 struct rtattr *attr = IFLA_RTA(iface);
893 for (; RTA_OK(attr, len); attr = RTA_NEXT(attr, len)) {
894 switch(attr->rta_type) {
896 snprintf(link->iface, IFNAMSIZ, "%s",(char *) RTA_DATA(attr));
902 inet_ntop(AF_INET, RTA_DATA(attr), link->laddr, 64);
903 else fill_address(RTA_DATA(attr), link->laddr);
909 inet_ntop(AF_INET, RTA_DATA(attr), link->bcast, 64);
910 else fill_address(RTA_DATA(attr), link->bcast);
913 link->mtu = *((int*)(RTA_DATA(attr)));
916 snprintf(link->qdiscpline, IFNAMSIZ, "%s", (char *) RTA_DATA(attr));
919 link->rt_stat = *((struct rtnl_link_stats*) RTA_DATA(attr));
922 link->parent = *((int*)(RTA_DATA(attr)));
925 link->txqueuelen = *((int*)(RTA_DATA(attr)));
932 if (!(lname = get_flag_string(flags, *((int*)(RTA_DATA(attr))), 0)))
1575 struct rtattr *rta, *attr[RTA_MAX+1] = {0,};
1612 if (rta->rta_type <= RTA_MAX) attr[rta->rta_type] = rta;
1616 if (attr[RTA_DST]) {
1617 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_DST]),
1620 memcmp(RTA_DATA(attr[RTA_DST]), &gfilter.rdst.addr, gfilter.rdst.len))
1623 memcmp(RTA_DATA(attr[RTA_DST]), &gfilter.mdst.addr, gfilter.mdst.len))
1630 if (attr[RTA_SRC]) {
1631 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_SRC]),
1634 memcmp(RTA_DATA(attr[RTA_SRC]), &gfilter.rsrc.addr, gfilter.rsrc.len))
1637 memcmp(RTA_DATA(attr[RTA_SRC]), &gfilter.msrc.addr, gfilter.msrc.len))
1643 if (attr[RTA_GATEWAY]) {
1644 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_GATEWAY]),
1651 if (!attr[RTA_GATEWAY]) return 0;
1656 if (gfilter.odev != 0) if (!attr[RTA_OIF]) return 0;
1657 if (attr[RTA_OIF]) {
1658 if (gfilter.odev !=0 && gfilter.odev != *(int*)RTA_DATA(attr[RTA_OIF]))
1661 if_indextoname(*(int*)RTA_DATA(attr[RTA_OIF]), toybuf));
1664 if (attr[RTA_PREFSRC] && hlen) {
1665 inetval = (char *)inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_PREFSRC]),
1669 if (attr[RTA_PRIORITY])
1670 sprintf(out, "%s metric %d ", out, *(uint32_t*)RTA_DATA(attr[RTA_PRIORITY]));
1673 if (attr[RTA_CACHEINFO]) ci = RTA_DATA(attr[RTA_CACHEINFO]);
1697 if (attr[RTA_IIF] && !gfilter.idev)
1699 if_indextoname(*(int*)RTA_DATA(attr[RTA_IIF]), toybuf));
1701 if (attr[RTA_METRICS])
1702 print_rta_metrics(out, attr[RTA_METRICS]);
1712 struct rtattr *rta, *attr[RTA_MAX+1] = {0,};
1716 if (rta->rta_type <= RTA_MAX) attr[rta->rta_type] = rta;
1721 && attr[RTA_PRIORITY]
1722 && *(int*)RTA_DATA(attr[RTA_PRIORITY]) == -1)
1843 struct rtattr *rta, *attr[RTA_MAX+1] = {0,};
1850 if (rta->rta_type <= RTA_MAX) attr[rta->rta_type] = rta;
1852 if (attr[RTA_PREFSRC]) {
1853 attr[RTA_PREFSRC]->rta_type = RTA_SRC;
1854 msg->rtm_src_len = 8*RTA_PAYLOAD(attr[RTA_PREFSRC]);
1855 } else if (!attr[RTA_SRC]) error_exit("can't connect the route");
1857 if (!odev && attr[RTA_OIF]) attr[RTA_OIF]->rta_type = 0;
1858 if (attr[RTA_GATEWAY]) attr[RTA_GATEWAY]->rta_type = 0;
1859 if (!idev && attr[RTA_IIF]) attr[RTA_IIF]->rta_type = 0;
2329 struct rtattr *rta, *attr[RTA_MAX+1] = {0,};
2339 if (rta->rta_type <= RTA_MAX) attr[rta->rta_type] = rta;
2343 printf("%u:\tfrom ", attr[RTA_PRIORITY] ?
2344 *(unsigned *)RTA_DATA(attr[RTA_PRIORITY]) : 0);
2346 if (attr[RTA_SRC]) {
2348 ? inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_SRC]),
2355 if (attr[RTA_DST]) {
2357 ? inet_ntop(msg->rtm_family, RTA_DATA(attr[RTA_DST]),
2366 if (attr[RTA_PROTOINFO])
2367 printf("fwmark %#x ", *(uint32_t*)RTA_DATA(attr[RTA_PROTOINFO]));
2369 if (attr[RTA_IIF]) printf("iif %s ", (char*)RTA_DATA(attr[RTA_IIF]));
2374 if (attr[RTA_FLOW]) {
2375 u_int32_t from, to = *(u_int32_t *)RTA_DATA(attr[RTA_FLOW]);
2384 if (!attr[RTA_GATEWAY]) printf("masquerade");
2386 RTA_DATA(attr[RTA_GATEWAY]), toybuf, sizeof(toybuf)));