setfib — set the default FIB (routing table) for the calling process.
Standard C Library (libc, -lc)
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
or in /boot/loader.conf with
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.
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
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.
The setfib() system call is a FreeBSD extension however similar
extensions have been added to many other UNIX style kernels.
The setfib() function appeared in FreeBSD 7.1.