Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ if(4N) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

arp(4P)

en(4)

lo(4)

IF(4N)  —  UNIX Programmer’s Manual

名前

if − ネットワークインタフェース

解説

システム中の各ネットワークインタフェースは 送受信する通信経路に相当します。 ネットワークインタフェースは、通常、 ハードウェアデバイスに対応しています。 ただし、ループバックインタフェース lo(4) のようなインタフェースは例外で、対応していません。 ブート時に、ハードウェアがサポートしている各インタフェースは、 オートコンフィグレーション処理中にシステムに自分の存在を知らせます。 インタフェースが自分のアドレスを得ると、 そのインタフェースを経由してメッセージが送られるように ルーティングテーブルエントリをインストールします。 ほとんどのインタフェースには、 そのインタフェースを通して通信を行う前に、 SIOCSIFADDR ioctl で指定されたアドレスの一部が必要です。 ネットワークリンクレイヤアドレスのマッピングが固定された インタフェースでは、ネットワーク番号だけが ioctl から取り出されます。 その他の部分は、ハードウェアの仕様に従ってその番号が取り出されます。 ネットワークリンクレイヤアドレスのマッピングが 動的に設定されている(たとえば、 arp(4P) を使用する 10Mb/s イーサネット)インタフェースでは、 ioctl に指定された全部のアドレスが使用されています。 次の ioctl コールは、ネットワークインタフェースを操作するために使用できます。 もし、その他を指定しないときは、パラメータとして ifreq 構造体が用いられます。この構造体の形式は次のとおりです。

structifreq {
charifr_name[16];/∗ インタフェース名(たとえば en0 )∗/
union {
structsockaddr ifru_addr;
structsockaddr ifru_dstaddr;
shortifru_flags;
} ifr_ifru;
#define ifr_addrifr_ifru.ifru_addr/∗ アドレス ∗/
#define ifr_dstaddrifr_ifru.ifru_dstaddr/∗ 2 点間リンクの相手局 ∗/
#define ifr_flagsifr_ifru.ifru_flags/∗ フラグ ∗/
};

SIOCSIFADDR
インタフェースアドレスを設定します。アドレスを設定した後に、 インタフェースのための“初期化”ルーチンがコールされます。

SIOCGIFADDR
インタフェースアドレスを得ます。

SIOCSIFDSTADDR
インタフェースの 2 点間のアドレスを設定します。

SIOCGIFDSTADDR
インタフェースの 2 点間のアドレスを得ます。

SIOCSIFFLAGS
インタフェースフラグフィールドを設定します。 インタフェースがダウンした場合に、 そのインタフェースを通してパケットを送受信しているプロセスに通知されます。

SIOCGIFFLAGS
インタフェースフラグを得ます。

SIOCGIFCONF
インタフェース構成のリストを得ます。リターンパラメータとして ifconf 構造体(次参照)を返します。 ifc_len フィールドには、 ifc_buf で指し示されているバッファのサイズを始めに設定します。 リターン時には、構成リストの長さ(バイト単位)が入ります。

/∗
 ∗ SIOCGIFCONFで使用する構造体
 ∗ システムのインタフェース構成の検索に使用する
 ∗ (全ネットワークのアクセス可否を知る必要があるプログラムに有用)
 ∗/
  structifconf {
intifc_len;/∗ 関連バッファのサイズ ∗/
union {
caddr_t ifcu_buf;
struct  ifreq ∗ifcu_req;
} ifc_ifcu;
#define ifc_buf ifc_ifcu.ifcu_buf/∗ バッファアドレス ∗/
#define ifc_req ifc_ifcu.ifcu_req/∗ 返される構造体の配列 ∗/
};

関連事項

arp(4P), en(4), lo(4)

NEWS-OSRelease 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026