NAME
netconfig — network configuration database
DESCRIPTION
The network configuration database,
/etc/netconfig,
is a system file used to store information about networks
that are connected to the system.
The
netconfig
database and the routines that access it (see
getnetconfig(3N))
are part of the
Network Selection component.
The Network Selection component also includes
getnetpath()
routines to provide application-specific network search paths.
These routines access the
netconfig
database based on the environment variable
NETPATH
(see
environ(5)).
netconfig
contains an entry for each network available on the system.
Entries are separated by newlines.
Fields are separated by whitespace and occur in the order in which they
are described below.
Whitespace can be embedded as
blank
or
tab.
Lines in
/etc/netconfig
that begin with a # (hash)
in column 1 are treated as comments.
Each of the valid lines in the
netconfig
database correspond to an available transport.
Each entry is of the form:
network_ID
semantics_flag
protocol_family
protocol_name
network_device
translation_libraries
- network_ID
A string used to uniquely identify a network.
network_ID
consists of non-null characters,
and has a length of at least 1.
No maximum length is specified.
This namespace is locally significant
and the local system administrator is the naming authority.
All
network_ID's
on a system must be unique.
- semantics
The
semantics
field is a string identifying the ``semantics''
of the network, that is, the set of services it supports, by
identifying the service interface it provides.
The
semantics
field is mandatory.
The following semantics are recognized.
- tpi_clts
Transport Provider Interface, connectionless
- tpi_cots_ord
Transport Provider Interface, connection oriented, supports
orderly release.
- flag
The
flag
field records certain two-valued
(``true'' and ``false'') attributes of networks.
flag
is a string composed of a combination of characters,
each of which indicates the value of the corresponding attribute.
If the character is present, the attribute is ``true.''
If the character is absent, the attribute is ``false.''
``-'' indicates that none of the attributes are present.
Only one character is currently recognized:
- v
Visible (``default'') network.
Used when the environment variable
NETPATH
is unset.
- protocol_family
The
protocol_family
and
protocol_name
fields are provided for protocol-specific applications.
The
protocol_family
field contains a string that identifies a protocol family.
The
protocol_family
identifier follows the same rules as those for
network_IDs;
the string consists of non-null characters, it has a length
of at least 1, and there is no maximum length specified.
A - in the
protocol_family
field indicates that no
protocol family identifier applies (the network is experimental).
An example protocol family:
- inet
Internetwork: UDP, TCP, etc.
- protocol_name
The
protocol_name
field contains a string that identifies a protocol.
The
protocol_name
identifier follows the same rules as those for
network_IDs;
that is, the string consists of non-NULL characters, it has a length
of at least 1, and there is no maximum length specified.
A ``-'' indicates that none of
the names listed apply.
The following protocol names are recognized.
- tcp
Transmission Control Protocol
- udp
User Datagram Protocol
- network_device
The
network_device
is the full pathname of the device
used to connect to the transport provider.
Typically, this device will be in the
/dev
directory.
The
network_device
must be specified.
- translation_libraries
The
name-to-address translation libraries
support a ``directory service'' (a name-to-address mapping
service) for the network.
A ``-'' in this field indicates the
absence of any
translation_libraries.
This has a special meaning for networks of the protocol family
inet:
its name-to-address mapping is provided by the name service switch
based on the entries for
hosts
and
services
in
switch()(see
nsswitch.conf(4)).
For networks of other families, a ``-''
indicates non-functional name-to-address mapping.
Otherwise, this field consists of a comma-separated list of pathnames
to dynamically linked libraries.
The pathname of the library can be either absolute or relative.
Itanium(R)-based libraries are located in the
/usr/lib/hpux[32|64]
directories.
For backward compatibility appropriate links are provided in
/usr/lib;
for example,
/usr/lib/libstraddr.so.1
is linked to
/usr/lib/libstraddr.1.
If the library field is modified and both Itanium-based and PA-RISC libraries are provided,
links must be created in the
/usr/lib
directory to accommodate backward compatibility to PA-RISC library
naming conventions. If an absolute
library pathname is specified for a particular service, the applications
using the service work only for that architecture.
Each field corresponds to an element in the
struct netconfig
structure.
struct netconfig
and the identifiers described on this manual page are defined in
<netconfig.h>.
This structure includes the following members:
- char *nc_netid
Network ID, including NULL terminator.
- unsigned long nc_semantics
Semantics.
- unsigned long nc_flag
Flags.
- char *nc_protofmly
Protocol family.
- char *nc_proto
Protocol name.
- char *nc_device
Full pathname of the network device.
- unsigned long nc_nlookups
Number of directory lookup libraries.
- char **nc_lookups
Names of the name-to-address translation libraries.
- unsigned long nc_unused[9]
Reserved for future expansion.
The
nc_semantics
field takes the following values,
corresponding to the semantics identified above:
NC_TPI_CLTS
NC_TPI_COTS_ORD
The
nc_flag
field is a bitfield.
The following bit, corresponding to the attribute identified above, is
currently recognized.
NC_NOFLAG
indicates the absence of any attributes.
EXAMPLES
Below is a sample
netconfig
file:
#
# The 'Network Configuration' File.
#
# Each entry is of the form:
#
# <network_id> <semantics> <flags> <protofamily> <protoname> <device> \
# <nametoaddr_libs>
#
# The '-' in <nametoaddr_libs> for inet family transports indicates
# redirection to the name service switch policies for 'hosts' and
# 'services'. The '-' may be replaced by nametoaddr libraries that
# comply with the SVr4 specs, in which case the name service switch
# will not be used for netdir_getbyname, netdir_getbyaddr,
# gethostbyname, gethostbyaddr, getservbyname, and getservbyport.
# There are no nametoaddr_libs for the inet family, and currently
# nametoaddr_libs are not supported.
#
udp tpi_clts v inet udp /dev/udp -
tcp tpi_cots_ord v inet tcp /dev/tcp -
AUTHOR
netconfig
was developed by Sun Microsystems, Inc.
FILES
<netconfig.h>
/etc/netconfig