OpenBSD manual page server

Manual Page Search Parameters

RTALLOC(9) Kernel Developer's Manual RTALLOC(9)

rtalloc, rtalloc_mpath, rtisvalid, rtref, rtfreerouting entry interface

#include <sys/types.h>
#include <sys/socket.h>
#include <net/route.h>

struct rtentry *
rtalloc(struct sockaddr *dst, int flags, unsigned int rtableid);

struct rtentry *
rtalloc_mpath(struct sockaddr *dst, uint32_t *src, unsigned int rtableid);

int
rtisvalid(struct rtentry *rt);

void
rtref(struct rtentry *rt);

void
rtfree(struct rtentry *rt);

The () function looks in the routing table rtableid for an entry matching dst. The following flags can be specified:

Allocate and return a cloned entry for dst if it does not exist and the lookup returned a cloning entry.

The () function does the same as rtalloc() with the RT_RESOLVE flag, but selects a multipath routing entry corresponding to src when possible.

The () function checks if the route entry rt is still valid and can be used. Cached entries that are no longer valid should be released by calling rtfree().

The () function increments a reference to the routing entry rt.

The () function releases a reference to the routing entry rt, freeing it if the reference count drops to 0. If rt is a NULL pointer, no action occurs.

rtalloc(), rtalloc_mpath(), rtisvalid(), rtref(), and rtfree() can be called during autoconf, from process context, or from interrupt context.

rtisvalid() returns 1 if the route entry is valid, otherwise 0.

route(4), rtable_walk(9), rtrequest(9)

July 12, 2019 OpenBSD-current