tail head cat sleep
QR code linking to this page

manページ  — IFMIB

名称

ifmib – ネットワークインタフェースの MIB

内容

概要


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
#include <sys/time.h>
#include <net/if.h>
#include <net/if_mib.h>

解説

ifmib 機能は、 netstat(1,) slstat(8) 及び SNMP 管理エージェントのようなクライアントアプリケーションに対し、 ネットワークインタフェースに関する管理情報を提供する sysctl(3) インタフェースのアプリケーションです。 この情報は、表のそれぞれの行が論理的なネットワークインタフェース (ハードウェアデバイスまたは lo(4) のようなソフトウェアによる仮想デバイスのどちらか) からなる表形式で 構築されます。 表には 2 つの列があり、それぞれの列はひとつの構造体を持ちます。 ひとつの列はすべてのインタフェースに関連する一般的な情報を含み、 もう一方の列はインタフェースの特定のクラスに固有な情報を含みます。 (一般的に後者は、もし存在しカーネルに実装可能であれば、 特定のインタフェースクラスを定義する SNMP MIB を実装します。)

ifmib 機能は sysctl(3) MIB の "net.link.generic" ブランチ経由でアクセスされます。 sysctl(3) name のそれぞれのレベルの明白な定数は < net/if_mib.h> で定義されます。 インタフェースの総数 (そしてつまり表の行数) は "net.link.generic.system.ifcount" (または、明白な定数である CTL_NET, PF_LINK, NETLINK_GENERIC, IFMIB_SYSTEM, IFMIB_IFCOUNT) によって与えられます。 特定のインタフェースを検索する管理アプリケーションは、1 番目の行から 開始し、指定されたインタフェースが検出されるか、インタフェースの総数に 達するまで、行から行へと表を移動します。

すべてのインタフェースに共通な、一般的なインタフェース情報は下記の手順で アクセスできます:

int
get_ifmib_general(int row, struct ifmibdata *ifmd)
{
        int name[6];

        name[0] = CTL_NET;         name[1] = PF_LINK;         name[2] = NETLINK_GENERIC;         name[3] = IFMIB_IFDATA;         name[4] = row;         name[5] = IFDATA_GENERAL;

        return sysctl(name, 6, ifmd, sizeof *ifmd, (void *)0, 0); }

ifmibdata 構造体 のフィールドは下記のとおりです:
ifmd_name (char []) ユニット番号を含む、インタフェースの名前
ifmd_pcount (int) 無差別に接続を待っている数
ifmd_flags (int) インタフェースのフラグ ( < net/if.h> で定義されています)
ifmd_snd_len (int) 送信キューの現在の瞬間的な長さ
ifmd_snd_drops (int) 送信キューが一杯だったためこのインタフェースがドロップしたパケット数
ifmd_data (struct if_data) < net/if.h> に定義されている構造体からの詳細情報 (if_data(9) [英語] を参照して下さい)

クラス固有な情報は IFDATA_LINKSPECIFIC 列を代わりに調べることによって取得できます。構造体の形式および長さは インタフェースのクラスに依存することに注意して下さい。 IFT_ETHER, IFT_ISO88023, IFT_STARLAN インタフェースについては, 構造体は "struct ifmib_iso_8802_3" ( < net/if_mib.h> で定義されています) と呼ばれていて、 イーサネットライクなネットワークのための RFC 1650 MIB のスーパセットを実装しています。 IFT_SLIP については, 構造体は "struct sl_softc" (< net/if_slvar.h>) です。

関連項目

sysctl(3), intro(4), ifnet(9) [英語]

F. Kastenholz, RFC 1650, Definitions of Managed Objects for the Ethernet-like Interface Types Using SMIv2, 1994年 8月.

バグ

ほとんどのイーサネットライクなインタフェースは Ethernet MIB を まだサポートしていません。サポートすることを知られているインタフェースには ed(4) 及び de(4) を含みます。 にもかかわらず、すべてのインタフェースは自動的に generic MIB をサポートします。

歴史

ifmib は FreeBSD 2.2 で初めて出現しました。

FreeBSD 2.2 IFMIB (4) November 15, 1996

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Using Unix is the computing equivalent of listening only to music by David Cassidy
— Rob Pike