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. This maximum is capped at
65536 due to the implementation storing the fib number in a 16-bit field in
the
mbuf(9) packet header, however it is not
suggested that one use such a large number as memory is allocated for every
FIB regardless of whether it is used, and there are places where all FIBs are
iterated over.
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.