Lines Matching refs:iface

126 struct iface {  struct
136 struct iface **ifaces; argument
161 struct iface *iface = snl_allocz(ss, sizeof(*iface)); in prepare_ifmap() local
163 if (!snl_parse_nlmsg(ss, hdr, &snl_rtm_link_parser, &iface->link)) in prepare_ifmap()
165 if (iface->link.ifi_index >= ifmap->size) { in prepare_ifmap()
168 while (new_size <= iface->link.ifi_index + 1) in prepare_ifmap()
171 struct iface **ifaces= snl_allocz(ss, new_size * sizeof(void *)); in prepare_ifmap()
176 ifmap->ifaces[iface->link.ifi_index] = iface; in prepare_ifmap()
178 iface->idx = ifmap->count; in prepare_ifmap()
245 struct iface *iface = ifmap->ifaces[ifindex]; in prepare_ifaddrs() local
246 ifa->next = iface->ifa; in prepare_ifaddrs()
248 iface->ifa = ifa; in prepare_ifaddrs()
249 iface->ifa_count++; in prepare_ifaddrs()
254 match_iface(struct ifconfig_args *args, struct iface *iface) in match_iface() argument
256 if_link_t *link = &iface->link; in match_iface()
289 for (struct ifa *ifa = iface->ifa; ifa != NULL; ifa = ifa->next) { in match_iface()
301 const struct iface *a = *((const void * const *)_a); in cmp_iface()
302 const struct iface *b = *((const void * const *)_b); in cmp_iface()
319 sort_iface_ifaddrs(struct snl_state *ss, struct iface *iface) in sort_iface_ifaddrs() argument
321 if (iface->ifa_count == 0) in sort_iface_ifaddrs()
324 struct ifa **sorted_ifaddrs = snl_allocz(ss, iface->ifa_count * sizeof(void *)); in sort_iface_ifaddrs()
325 struct ifa *ifa = iface->ifa; in sort_iface_ifaddrs()
327 for (uint32_t i = 0; i < iface->ifa_count; i++) { in sort_iface_ifaddrs()
334 qsort(sorted_ifaddrs, iface->ifa_count, sizeof(void *), cmp_ifaddr); in sort_iface_ifaddrs()
336 iface->ifa = ifa; in sort_iface_ifaddrs()
337 for (uint32_t i = 1; i < iface->ifa_count; i++) { in sort_iface_ifaddrs()
366 status_nl(if_ctx *ctx, struct iface *iface) in status_nl() argument
368 if_link_t *link = &iface->link; in status_nl()
393 sort_iface_ifaddrs(ctx->io_ss, iface); in status_nl()
395 for (struct ifa *ifa = iface->ifa; ifa != NULL; ifa = ifa->next) { in status_nl()
459 struct iface **sorted_ifaces = snl_allocz(&ss, ifmap->count * sizeof(void *)); in list_interfaces_nl()
471 struct iface *iface = sorted_ifaces[i]; in list_interfaces_nl() local
473 if (!match_iface(args, iface)) in list_interfaces_nl()
476 ctx->ifname = iface->link.ifla_ifname; in list_interfaces_nl()
481 fputs(iface->link.ifla_ifname, stdout); in list_interfaces_nl()
483 status_nl(ctx, iface); in list_interfaces_nl()