diff options
author | glebius <glebius@FreeBSD.org> | 2004-10-07 10:14:23 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2004-10-07 10:14:23 +0000 |
commit | 91593d1f675bfdafbb5502a5c5793e268a5994c0 (patch) | |
tree | e09ab78565d164db973cf5aad409fd36b16de243 /share | |
parent | d8c70aa7231230b2525fde7dfc60c2bb045da54f (diff) | |
download | FreeBSD-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.9 | 66 |
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 |