setfib
set the default FIB (routing table) for the calling process.
- Provided by: freebsd-manpages (Version: 9.2+1-1)
- Report a bug
set the default FIB (routing table) for the calling process.
Standard C Library (libc, -lc)
#include
<sys/socket.h>
int
setfib(int
fib);
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=Nor 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.
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.
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.