---
name: "netconfig"
section: "5"
platform: "linux"
package: "libtirpc"
version: "1.3.8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/netconfig"
---

# netconfig(5)

network configuration data base

## NAME

**netconfig** – network configuration data base

## SYNOPSIS

*/etc/netconfig*

## DESCRIPTION

The **netconfig** file defines a list of “transport names”, describing their semantics and protocol. In FreeBSD, this file is only used by the RPC library code.

Entries have the following format:

*network\_id* *semantics* *flags* *family* *protoname* *device* *libraries*

Entries consist of the following fields:

- *network\_id*

  The name of the transport described.

- *semantics*

  Describes the semantics of the transport. This can be one of:

  - **tpi\_clts**

    Connectionless transport.

  - **tpi\_cots**

    Connection-oriented transport

  - **tpi\_cots\_ord**

    Connection-oriented, ordered transport.

  - **tpi\_raw**

    A raw connection.

- *flags*

  This field is either blank (specified by “-”), or contains a “v”, meaning visible to the [getnetconfig(3)](/getnetconfig/3.md) function.

- *family*

  The protocol family of the transport. This is currently one of:

  - **inet6**

    The IPv6 (PF\_INET6) family of protocols.

  - **inet**

    The IPv4 (PF\_INET) family of protocols.

  - **loopback**

    The PF\_LOCAL protocol family.

- *protoname*

  The name of the protocol used for this transport. Can currently be either **udp**, **tcp** or empty.

- *device*

  This field is always empty in FreeBSD.

- *libraries*

  This field is always empty in FreeBSD.

The order of entries in this file will determine which transport will be preferred by the RPC library code, given a match on a specified network type. For example, if a sample network config file would look like this:

```
udp6       tpi_clts      v     inet6    udp     -       -
tcp6       tpi_cots_ord  v     inet6    tcp     -       -
udp        tpi_clts      v     inet     udp     -       -
tcp        tpi_cots_ord  v     inet     tcp     -       -
rawip      tpi_raw       -     inet      -      -       -
local      tpi_cots_ord  -     loopback  -      -       -
```

then using the network type **udp** in calls to the RPC library function (see [rpc(3)](/rpc/3.md)) will make the code first try **udp6**, and then **udp**.

[getnetconfig(3)](/getnetconfig/3.md) and associated functions will parse this file and return structures of the following format:

```
struct netconfig {
    char *nc_netid;              /* Network ID */
    unsigned long nc_semantics;  /* Semantics (see below) */
    unsigned long nc_flag;       /* Flags (see below) */
    char *nc_protofmly;          /* Protocol family */
    char *nc_proto;              /* Protocol name */
    char *nc_device;             /* Network device pathname (unused) */
    unsigned long nc_nlookups;   /* Number of lookup libs (unused) */
    char **nc_lookups;           /* Names of the libraries (unused) */
    unsigned long nc_unused[9];  /* reserved */
};
```

## FILES

- */etc/netconfig*

  ## SEE ALSO

[getnetconfig(3)](/getnetconfig/3.md), [getnetpath(3)](/getnetpath/3.md)
