Lines Matching full:iface

126 struct iface {  struct
136 struct iface **ifaces; argument
163 struct iface *iface = snl_allocz(ss, sizeof(*iface)); in prepare_ifmap() local
165 if (!snl_parse_nlmsg(ss, hdr, &snl_rtm_link_parser, &iface->link)) in prepare_ifmap()
167 if (iface->link.ifi_index >= ifmap->size) { in prepare_ifmap()
170 while (new_size <= iface->link.ifi_index + 1) in prepare_ifmap()
173 struct iface **ifaces= snl_allocz(ss, new_size * sizeof(void *)); in prepare_ifmap()
178 ifmap->ifaces[iface->link.ifi_index] = iface; in prepare_ifmap()
180 iface->idx = ifmap->count; in prepare_ifmap()
247 struct iface *iface = ifmap->ifaces[ifindex]; in prepare_ifaddrs() local
248 ifa->next = iface->ifa; in prepare_ifaddrs()
250 iface->ifa = ifa; in prepare_ifaddrs()
251 iface->ifa_count++; in prepare_ifaddrs()
256 match_iface(struct ifconfig_args *args, struct iface *iface) in match_iface() argument
258 if_link_t *link = &iface->link; in match_iface()
291 for (struct ifa *ifa = iface->ifa; ifa != NULL; ifa = ifa->next) { in match_iface()
303 const struct iface *a = *((const void * const *)_a); in cmp_iface()
304 const struct iface *b = *((const void * const *)_b); in cmp_iface()
321 sort_iface_ifaddrs(struct snl_state *ss, struct iface *iface) in sort_iface_ifaddrs() argument
323 if (iface->ifa_count == 0) in sort_iface_ifaddrs()
326 struct ifa **sorted_ifaddrs = snl_allocz(ss, iface->ifa_count * sizeof(void *)); in sort_iface_ifaddrs()
327 struct ifa *ifa = iface->ifa; in sort_iface_ifaddrs()
329 for (uint32_t i = 0; i < iface->ifa_count; i++) { in sort_iface_ifaddrs()
336 qsort(sorted_ifaddrs, iface->ifa_count, sizeof(void *), cmp_ifaddr); in sort_iface_ifaddrs()
338 iface->ifa = ifa; in sort_iface_ifaddrs()
339 for (uint32_t i = 1; i < iface->ifa_count; i++) { in sort_iface_ifaddrs()
368 status_nl(if_ctx *ctx, struct iface *iface) in status_nl() argument
370 if_link_t *link = &iface->link; in status_nl()
395 sort_iface_ifaddrs(ctx->io_ss, iface); in status_nl()
397 for (struct ifa *ifa = iface->ifa; ifa != NULL; ifa = ifa->next) { in status_nl()
461 struct iface **sorted_ifaces = snl_allocz(&ss, ifmap->count * sizeof(void *)); in list_interfaces_nl()
473 struct iface *iface = sorted_ifaces[i]; in list_interfaces_nl() local
475 if (!match_iface(args, iface)) in list_interfaces_nl()
478 ctx->ifname = iface->link.ifla_ifname; in list_interfaces_nl()
483 fputs(iface->link.ifla_ifname, stdout); in list_interfaces_nl()
485 status_nl(ctx, iface); in list_interfaces_nl()