Bring in a transport-independent RPC (TI-RPC).
[dragonfly.git] / lib / libc / rpc / netconfig.5
1 .\" $NetBSD: netconfig.5,v 1.2 2000/11/08 13:18:28 lukem Exp $
2 .\" $FreeBSD: src/lib/libc/rpc/netconfig.5,v 1.3 2006/01/11 13:57:15 ceri Exp $
3 .\" $DragonFly$
4 .Dd November 15, 2008
5 .Dt NETCONFIG 5
6 .Os
7 .Sh NAME
8 .Nm netconfig
9 .Nd network configuration data base
10 .Sh SYNOPSIS
11 .Pa /etc/netconfig
12 .Sh DESCRIPTION
13 The
14 .Nm
15 file defines a list of
16 .Dq transport names ,
17 describing their semantics and protocol.
18 In
19 .Fx ,
20 this file is only used by the RPC library code.
21 .Pp
22 Entries have the following format:
23 .Pp
24 .Ar network_id semantics flags family protoname device libraries
25 .Pp
26 Entries consist of the following fields:
27 .Bl -tag -width network_id
28 .It Ar network_id
29 The name of the transport described.
30 .It Ar semantics
31 Describes the semantics of the transport.
32 This can be one of:
33 .Bl -tag -width tpi_cots_ord -offset indent
34 .It Sy tpi_clts
35 Connectionless transport.
36 .It Sy tpi_cots
37 Connection-oriented transport
38 .It Sy tpi_cots_ord
39 Connection-oriented, ordered transport.
40 .It Sy tpi_raw
41 A raw connection.
42 .El
43 .It Ar flags
44 This field is either blank (specified by
45 .Dq Li - ) ,
46 or contains one or more of the following characters:
47 .Bl -tag -width b -offset indent
48 .It Sy b
49 The network represented by this entry is broadcast capable.
50 This flag is meaningless in
51 .Fx .
52 .It Sy v
53 The entry may be returned by the
54 .Xr getnetpath 3
55 function.
56 .El
57 .It Ar family
58 The protocol family of the transport.
59 This is currently one of:
60 .Bl -tag -width loopback -offset indent
61 .It Sy inet6
62 The IPv6
63 .Pq Dv PF_INET6
64 family of protocols.
65 .It Sy inet
66 The IPv4
67 .Pq Dv PF_INET
68 family of protocols.
69 .It Sy loopback
70 The
71 .Dv PF_LOCAL
72 protocol family.
73 .El
74 .It Ar protoname
75 The name of the protocol used for this transport.
76 Can currently be either
77 .Sy udp ,
78 .Sy tcp
79 or empty.
80 .It Ar device
81 This field is always empty in
82 .Fx .
83 .It Ar libraries
84 This field is always empty in
85 .Fx .
86 .El
87 .Pp
88 The order of entries in this file will determine which transport will
89 be preferred by the RPC library code, given a match on a specified
90 network type.
91 For example, if a sample network config file would look like this:
92 .Bd -literal -offset indent
93 udp6       tpi_clts      v     inet6    udp     -       -
94 tcp6       tpi_cots_ord  v     inet6    tcp     -       -
95 udp        tpi_clts      v     inet     udp     -       -
96 tcp        tpi_cots_ord  v     inet     tcp     -       -
97 rawip      tpi_raw       -     inet      -      -       -
98 local      tpi_cots_ord  -     loopback  -      -       -
99 .Ed
100 .Pp
101 then using the network type
102 .Sy udp
103 in calls to the RPC library function (see
104 .Xr rpc 3 )
105 will make the code first try
106 .Sy udp6 ,
107 and then
108 .Sy udp .
109 .Pp
110 .Xr getnetconfig 3
111 and associated functions will parse this file and return structures of
112 the following format:
113 .Bd -literal
114 struct netconfig {
115     char *nc_netid;              /* Network ID */
116     unsigned long nc_semantics;  /* Semantics */
117     unsigned long nc_flag;       /* Flags */
118     char *nc_protofmly;          /* Protocol family */
119     char *nc_proto;              /* Protocol name */
120     char *nc_device;             /* Network device pathname (unused) */
121     unsigned long nc_nlookups;   /* Number of lookup libs (unused) */
122     char **nc_lookups;           /* Names of the libraries (unused) */
123     unsigned long nc_unused[9];  /* reserved */
124 };
125 .Ed
126 .Sh FILES
127 .Bl -tag -width /etc/netconfig -compact
128 .It Pa /etc/netconfig
129 .El
130 .Sh SEE ALSO
131 .Xr getnetconfig 3 ,
132 .Xr getnetpath 3