Lines Matching defs:link

25     where OBJECT := {address | link | route | rule | tunnel}
26 OPTIONS := { -f[amily] { inet | inet6 | link } | -o[neline] }
126 // Common Code for IP Options (like: addr, link, route etc.)
277 init_arglist(rt_scope,253,"link");
495 // Code for ip link.
603 char *name, *dev, *type, *link, *addr;
607 name = dev = type = link = addr = NULL;
609 struct arglist objectlist[] = { {"type", 0}, {"name", 1}, {"link", 2},
618 else if (idx == 2) link = *++argv;
655 if (link) {
656 uint32_t idx = get_ifaceindex(link, 1);
787 static int print_link_output(struct linkdata *link)
799 if (link->parent != -1) {
804 if_indextoname( link->parent,req.ifr_ifrn.ifrn_name);
807 else link->txqueuelen = req.ifr_ifru.ifru_ivalue;
811 if (TT.is_addr && addrinfo.label && fnmatch(addrinfo.label, link->iface, 0))
815 if (!(flags = get_flag_string(iface_flags, link->flags, 1)))
818 if (link->parent != -1) {
821 if (!if_indextoname(link->parent, iface)) perror_exit(NULL);
822 sprintf(toybuf,"%s@%s", link->iface, iface);
824 if (link->flags & IFF_POINTOPOINT) peer = "peer";
826 xprintf("%d: %s", link->iface_idx,
827 ((link->parent == -1) ? link->iface : toybuf));
829 link->iface_idx, ((link->parent == -1) ? link->iface : toybuf), flags,
830 link->mtu, link->qdiscpline, link->state, link->txqueuelen);
834 line_feed, link->type, link->laddr, peer ,link->bcast);
840 print_stats(&link->rt_stat);
853 static int get_link_info(struct nlmsghdr* h,struct linkdata* link,char **argv)
884 link->next = link->prev = 0;
885 link->iface_type = iface->ifi_type;
886 if (!lname) error_exit("Invalid link.");
887 xstrncpy(link->type, lname, IFNAMSIZ);
889 link->iface_idx = iface->ifi_index;
890 link->flags = iface->ifi_flags;
891 if (*argv && !strcasecmp("up",*argv) && !(link->flags & IFF_UP)) return 1;
892 link->parent = -1;
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)));
934 xstrncpy(link->state, lname,IFNAMSIZ);
946 struct linkdata link;
948 if (!get_link_info(mhdr, &link, argv)) {
951 memcpy(lnk, &link, sizeof(struct linkdata));
955 else print_link_output(&link);
1289 error_exit("Can't flush link Addresses");
1381 static int ipaddr_print( struct linkdata *link, int flag_l)
1386 addrinfo.ifindex = link->iface_idx;
1389 if (TT.addressfamily == AF_PACKET) print_link_output(link);
1393 if (!col && (fnmatch(addrinfo.label, &link->iface[0], 0)))
1437 else if (addrinfo.up && (link->flags & IFF_UP))
1438 print_link_output(link);
1439 else if (!addrinfo.up) print_link_output(link);
1444 if (addrinfo.up && (link->flags & IFF_UP))
1445 print_link_output(link);
1446 else if (!addrinfo.up) print_link_output(link);
2461 if (ptnl->link) {
2465 req.ifr_ifindex = ptnl->link;
2524 if ((ptnl->link && iptnl.link != ptnl->link) || (*ptnl->name &&
2654 ptnl->link = req.ifr_ifindex;
2860 {"inet6", AF_INET6}, {"link", AF_PACKET}, {NULL, -1}};
2880 struct arglist ip_objectlist[] = { {"address", 0}, {"link", 1},