--- embedaddon/quagga/zebra/if_ioctl_solaris.c 2012/02/21 17:26:11 1.1 +++ embedaddon/quagga/zebra/if_ioctl_solaris.c 2016/11/02 10:09:10 1.1.1.2 @@ -30,16 +30,17 @@ #include "memory.h" #include "log.h" #include "privs.h" +#include "vrf.h" #include "zebra/interface.h" +#include "zebra/ioctl_solaris.h" +#include "zebra/rib.h" -void lifreq_set_name (struct lifreq *, const char *); -int if_get_flags_direct (const char *, uint64_t *, unsigned int af); static int if_get_addr (struct interface *, struct sockaddr *, const char *); static void interface_info_ioctl (struct interface *); extern struct zebra_privs_t zserv_privs; -int +static int interface_list_ioctl (int af) { int ret; @@ -208,7 +209,7 @@ end: } /* Get interface's index by ioctl. */ -int +static int if_get_index (struct interface *ifp) { int ret; @@ -349,8 +350,13 @@ interface_info_ioctl (struct interface *ifp) /* Lookup all interface information. */ void -interface_list () +interface_list (struct zebra_vrf *zvrf) { + if (zvrf->vrf_id != VRF_DEFAULT) + { + zlog_warn ("interface_list: ignore VRF %u", zvrf->vrf_id); + return; + } interface_list_ioctl (AF_INET); interface_list_ioctl (AF_INET6); interface_list_ioctl (AF_UNSPEC);