総合手引 | セクション 4 | English | オプション |
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>) です。
RFC 1650, Definitions of Managed Objects for the Ethernet-like Interface Types Using SMIv2, 1994年 8月.
,FreeBSD 2.2 | IFMIB (4) | November 15, 1996 |
総合手引 | セクション 4 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | Using Unix is the computing equivalent of listening only to music by David Cassidy | ” |
— Rob Pike |