NET_LIFGETNEXT(9F)      Kernel Functions for Drivers      NET_LIFGETNEXT(9F)
NAME
       net_lifgetnext - search through a list of logical network interfaces
SYNOPSIS
       #include <sys/neti.h>       
net_if_t net_lifgetnext(
const net_data_t net, 
const phy_if_t ifp,            
net_if_t lif);
INTERFACE LEVEL
       illumos DDI specific (illumos DDI).
PARAMETERS
       net              value returned from a successful call to              
net_protocol_lookup(9F).       
ifp              value returned from a successful call to 
net_phylookup(9F) or              
net_phygetnext(9F).       
lif              value returned from a successful call to this function.
DESCRIPTION
       The 
net_lifgetnext() function is used to search through all of the
       logical interfaces that are associated with a physical network
       interface. To start searching through this list, a value of 0 should
       be passed through as the value of 
lif. When 0 is returned by this
       function, the last of the interfaces owned by this protocol has been
       reached.
       When called successfully, the value returned represents a logical
       interface that exists, at the time of the call, within the scope of
       the network interface and its assigned network protocol. This value
       is only guaranteed to be unique for a name within the scope of the
       network interface and its assigned protocol.
EXAMPLES
            net_data_t net;
             phy_if_t ifp;
             net_if_t lif;
             char buffer[32];
             net_ifaddr_t atype[1];
             struct sockaddr_in sin[1];
             net = net_protocol_lookup("inet");
             if (net != NULL) {
                  atype[0] = NA_ADDRESS;
                  ifp = net_phylookup(net, "hme0");
                  for (lif = net_lifgetnext(net, 0); lif != 0;
                        lif = net_lifgetnext(net, lif)) {
                        /* Do something with lif */
                        if (net_getlifaddr(net, ifp, lif, 1, atype, sin) == 0)
                              printf("hme0:%d %x0, lif,
                                  ntohl(sin[0].sin_addr.s_addr));
                   }
               }
RETURN VALUES
       The 
net_lifgetnext() function returns a value of -1 if it is not
       supported by the network protocol and a value of 0 if an attempt to
       go beyond the last network interface is made. Otherwise, it returns a
       value representing a network interface.
CONTEXT
       The 
net_lifgetnext() function may be called from user,  kernel, or
       interrupt context.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
SEE ALSO
       net_phygetnext(9F), 
net_phylookup(9F)                                 May 1, 2008              NET_LIFGETNEXT(9F)