Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

     setfib — set the default FIB (routing table) for the calling process.

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <sys/socket.h>

     int
     setfib(int fib);

DESCRIPTION

     The setfib() system call sets the associated fib for all sockets opened subsequent to the
     call, to be that of the argument fib.  The fib argument must be greater than or equal to 0
     and less than the current system maximum which may be retrieved by the net.fibs sysctl.  The
     system maximum is set in the kernel configuration file with

           options   ROUTETABLES=N

     or in /boot/loader.conf with

           net.fibs="N"

     where N is an integer.  However, this maximum is capped at 16 due to the implementation
     storing the fib number in a 4-bit field in mbuf(9) flags.  The default fib of the process
     will be applied to all protocol families that support multiple fibs, and ignored by those
     that do not.  The default fib for a process may be overridden for a socket with the use of
     the SO_SETFIB socket option.

RETURN VALUES

     The setfib() function returns the value 0 if successful; otherwise the value -1 is returned
     and the global variable errno is set to indicate the error.

ERRORS

     The setfib() system call will fail and no action will be taken and return EINVAL if the fib
     argument is greater than the current system maximum.

SEE ALSO

     setfib(1), setsockopt(2)

STANDARDS

     The setfib() system call is a FreeBSD extension however similar extensions have been added
     to many other UNIX style kernels.

HISTORY

     The setfib() function appeared in FreeBSD 7.1.