IF_NAMETOINDEX


IF_NAMETOINDEX(3)         System Programmer's Manual         IF_NAMETOINDEX(3)

NAME
     if_nametoindex, if_indextoname, if_nameindex, if_freenameindex - convert
     interface index to name, and vice versa

SYNOPSIS
     #include <net/if.h>

     unsigned int
     if_nametoindex(const char *ifname)

     char *
     if_indextoname(unsigned int ifindex, char *ifname)

     struct if_nameindex *
     if_nameindex(void)

     void
     if_freenameindex(struct if_nameindex *ptr)

DESCRIPTION
     These functions map interface indexes to interface names (such as
     ``lo0''), and vice versa.

     The if_nametoindex() function converts an interface name specified by the
     ifname argument to an interface index (positive integer value).  If the
     specified interface does not exist, 0 will be returned.

     if_indextoname() converts an interface index specified by the ifindex ar-
     gument to an interface name.  The ifname argument must point to a buffer
     of at least IF_NAMESIZE bytes into which the interface name corresponding
     to the specified index is returned.  (IF_NAMESIZE is also defined in
     <net/if.h> and its value includes a terminating null byte at the end of
     the interface name.)  This pointer is also the return value of the func-
     tion.  If there is no interface corresponding to the specified index,
     NULL is returned.

     if_nameindex() returns an array of if_nameindex structures.
     if_nametoindex is also defined in <net/if.h>, and is as follows:

     struct if_nameindex {
         unsigned int   if_index;  /* 1, 2, ... */
         char          *if_name;   /* null terminated name: "le0", ... */
     };

     The end of the array of structures is indicated by a structure with an
     if_index of 0 and an if_name of NULL. The function returns a null pointer
     on error.  The memory used for this array of structures along with the
     interface names pointed to by the if_name members is obtained dynamical-
     ly.  This memory is freed by the if_freenameindex() function.

     if_freenameindex() takes a pointer that was returned by if_nameindex() as
     argument (ptr), and it reclaims the region allocated.

DIAGNOSTICS
     if_nametoindex() returns 0 on error, positive integer on success.
     if_indextoname() and if_nameindex() return NULL on errors.

SEE ALSO
     R. Gilligan, S.  Thomson, J. Bound, and W. Stevens, ``Basic Socket Inter-
     face Extensions for IPv6,'' RFC2553, March 1999.

STANDARDS
     These functions are defined in ``Basic Socket Interface Extensions for
     IPv6'' (RFC2533).

BSD Experimental                 May 21, 1998                                2