netconfig
ファイルでは、
"トランスポート名"
のリストを定義して、それぞれのセマンティクスやプロトコルを記述しています。
FreeBSD 
では、このファイルは RPC ライブラリのコードだけが使用しています。
エントリは次のようなフォーマットになっています:
network_id semantics flags family protoname device libraries
エントリを構成するフィールドは次の通りです:
|
| network_id | 
|  | 記述するトランスポートの名称 | 
| semantics | トランスポートのセマンティクスを記述します。
これは次のうちの一つです: | 
|
| tpi_clts | コネクションレストランスポート | 
| tpi_cots | コネクション指向トランスポート | 
| tpi_cots_ord | 
|  | コネクション指向順序付きトランスポート | 
| tpi_raw | 素のコネクション | 
|
| flags | このフィールドはブランクか(
"-"
と指定します)、
または
"v"
を含みます。
"v"
を含むときは
getnetconfig(3) [英語]
関数で見ることが出来るということを表します。 | 
| family | トランスポートのプロトコルファミリで、
現在は次のうちの一つです: | 
|
| inet6 | IPv6
( PF_INET6)
プロトコルファミリ | 
| inet | IPv4
( PF_INET)
プロトコルファミリ | 
| loopback | 
|  | PF_LOCAL
プロトコルファミリ | 
|
| protoname | 
|  | トランスポートのプロトコル名で、
現在は
 udp,
 tcp
のどちらかか、もしくは空です。 | 
| device | FreeBSD 
では、このフィールドは常に空です。 | 
| libraries | 
|  | FreeBSD 
では、このフィールドは常に空です。 | 
|
このファイル内のエントリの順序によって、指定されたネットワークタイプに対する
RPC ライブラリコードのトランスポートの優先順位が決まります。
例えば、サンプルとしてネットワーク設定ファイルが下のようになっていたとします:
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  -      -       -
このとき、ネットワークタイプとして
 udp
を使用して RPC ライブラリ関数を呼び出すと
((rpc) 3
参照)、
まず最初に
 udp6
を試してから
 udp
を試します。
getnetconfig(3) [英語]
や、その関連の関数はこのファイルを構文解析して次のようなフォーマットの
構造体を返します:
struct netconfig {
    char *nc_netid;              /* ネットワーク ID */
    unsigned long nc_semantics;  /* セマンティクス (下記参照) */
    unsigned long nc_flag;       /* フラグ (下記参照) */
    char *nc_protofmly;          /* プロトコルファミリ */
    char *nc_proto;              /* プロトコル名 */
    char *nc_device;             /* ネットワークデバイスのパス名 (未使用) */
    unsigned long nc_nlookups;   /* 参照するライブラリの数 (未使用) */
    char **nc_lookups;           /* ライブラリ名の並び (未使用) */
    unsigned long nc_unused[9];  /* 予約 */
};