summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2004-10-07 10:14:23 +0000
committerglebius <glebius@FreeBSD.org>2004-10-07 10:14:23 +0000
commit91593d1f675bfdafbb5502a5c5793e268a5994c0 (patch)
treee09ab78565d164db973cf5aad409fd36b16de243 /share
parentd8c70aa7231230b2525fde7dfc60c2bb045da54f (diff)
downloadFreeBSD-src-91593d1f675bfdafbb5502a5c5793e268a5994c0.zip
FreeBSD-src-91593d1f675bfdafbb5502a5c5793e268a5994c0.tar.gz
- note that RTF_PRCLONING is obsoleted
- explain locking differencies between rtalloc(), rtalloc_ign(), rtalloc1() and rtfree(), RTFREE(). Reviewed by: andre (1.5 months ago) OK'd by: ru
Diffstat (limited to 'share')
-rw-r--r--share/man/man9/rtalloc.966
1 files changed, 47 insertions, 19 deletions
diff --git a/share/man/man9/rtalloc.9 b/share/man/man9/rtalloc.9
index 717384d..a5184da 100644
--- a/share/man/man9/rtalloc.9
+++ b/share/man/man9/rtalloc.9
@@ -27,13 +27,14 @@
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
-.Dd October 8, 1996
+.Dd October 7, 2004
.Os
.Dt RTALLOC 9
.Sh NAME
.Nm rtalloc ,
.Nm rtalloc_ign ,
-.Nm rtalloc1
+.Nm rtalloc1 ,
+.Nm rtfree
.Nd look up a route in the kernel routing table
.Sh SYNOPSIS
.In sys/types.h
@@ -45,6 +46,9 @@
.Fn rtalloc_ign "struct route *ro" "u_long flags"
.Ft "struct rtentry *"
.Fn rtalloc1 "struct sockaddr *sa" "int report" "u_long flags"
+.Ft void
+.Fn rtfree "struct rt_entry *rt"
+.Fn RTFREE "struct rt_entry *rt"
.Sh DESCRIPTION
The kernel uses a radix tree structure to manage routes for the
networking subsystem.
@@ -58,22 +62,21 @@ certain protocol\- and interface-specific actions to take place.
.Pp
When a route with the flag
.Dv RTF_CLONING
-or
-.Dv RTF_PRCLONING
-is retrieved, and the action of those flags is not masked, the
+is retrieved, and the action of this flag is not masked, the
.Nm
facility automatically generates a new route using information in the
-old route as a template, and in the case of
-.Dv RTF_CLONING ,
+old route as a template, and
sends an
.Dv RTM_RESOLVE
message to the appropriate interface-address route-management routine
.Pq Fn ifa->ifa_rtrequest .
+This generated route is called
+.Em cloned ,
+and has
+.Dv RTF_WASCLONED
+flag set.
.Dv RTF_PRCLONING
-routes are assumed to be managed by the protocol family and no
-resolution requests are made, but all routes generated by the cloning
-process retain a reference to the route from which they were
-generated.
+flag is obsoleted and thus ignored by facility.
If the
.Dv RTF_XRESOLVE
flag is set, then the
@@ -95,6 +98,7 @@ struct route {
struct sockaddr ro_dst;
struct rtentry *ro_rt;
};
+.Pp
.Ed
Thus, this function can only be used for address families which are
smaller than the default
@@ -119,9 +123,7 @@ interface can be used when the default actions of
.Fn rtalloc
in the presence of the
.Dv RTF_CLONING
-and
-.Dv RTF_PRCLONING
-flags are undesired.
+flag is undesired.
The
.Fa ro
argument is the same as
@@ -130,10 +132,15 @@ but there is additionally a
.Fa flags
argument, which lists the flags in the route which are to be
.Em ignored
-(ordinarily, one or both of
+(in most cases this is
.Dv RTF_CLONING
-or
-.Dv RTF_PRCLONING ) .
+flag) .
+Both
+.Fn rtalloc
+and
+.Fn rtalloc_ign
+functions return an unlocked
+.Ft "struct rtentry" .
.Pp
The
.Fn rtalloc1
@@ -166,11 +173,32 @@ The third argument,
.Fa flags ,
is a set of flags to ignore, as in
.Fn rtalloc_ign .
-.Sh RETURN VALUES
+.Fn rtalloc1
+returns a locked
+.Ft "struct rtentry" .
+.Pp
The
+.Fn rtfree
+function frees a locked route entry, e.g. previously allocated by
+.Fn rtalloc1 .
+.Pp
+.Fn RTFREE
+macro is used to free unlocked route entries, previously allocated by
.Fn rtalloc
-and
+or
+.Fn rtalloc_ign .
+The preferred usage is allocating a route using
+.Fn rtalloc
+or
+.Fn rtalloc_ign
+and freeing using
+.Fn RTFREE .
+.Sh RETURN VALUES
+The
+.Fn rtalloc ,
.Fn rtalloc_ign
+and
+.Fn rtfree
functions do not return a value.
The
.Fn rtalloc1
OpenPOWER on IntegriCloud