.\" Copyright 1996 Massachusetts Institute of Technology .\" .\" Permission to use, copy, modify, and distribute this software and .\" its documentation for any purpose and without fee is hereby .\" granted, provided that both the above copyright notice and this .\" permission notice appear in all copies, that both the above .\" copyright notice and this permission notice appear in all .\" supporting documentation, and that the name of M.I.T. not be used .\" in advertising or publicity pertaining to distribution of the .\" software without specific, written prior permission. M.I.T. makes .\" no representations about the suitability of this software for any .\" purpose. It is provided "as is" without express or implied .\" warranty. .\" .\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS .\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT .\" SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF .\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %Id: ifmib.4,v 1.7 1997/03/19 19:47:31 bde Exp % .\" $FreeBSD$ .\" .Dd November 15, 1996 .Dt IFMIB 4 .Os FreeBSD 2.2 .Sh 名称 .Nm ifmib .Nd ネットワークインタフェースの MIB .Sh 概要 .Fd #include .Fd #include .Fd #include .Fd #include .Fd #include .Fd #include .Sh 解説 .Nm ifmib 機能は、 .Xr netstat 1, .Xr slstat 8 及び .Tn SNMP 管理エージェントのようなクライアントアプリケーションに対し、 ネットワークインタフェースに関する管理情報を提供する .Xr sysctl 3 インタフェースのアプリケーションです。 この情報は、表のそれぞれの行が論理的なネットワークインタフェース (ハードウェアデバイスまたは .Xr lo 4 のようなソフトウェアによる仮想デバイスのどちらか) からなる表形式で 構築されます。 表には 2 つの列があり、それぞれの列はひとつの構造体を持ちます。 ひとつの列はすべてのインタフェースに関連する一般的な情報を含み、 もう一方の列はインタフェースの特定のクラスに固有な情報を含みます。 (一般的に後者は、もし存在しカーネルに実装可能であれば、 特定のインタフェースクラスを定義する .Tn SNMP .Tn MIB を実装します。) .Pp .Nm 機能は .Xr sysctl 3 MIB の .Dq Li net.link.generic ブランチ経由でアクセスされます。 .Xr sysctl 3 .Ar name のそれぞれのレベルの明白な定数は .Aq Pa net/if_mib.h で定義されます。 インタフェースの総数 (そしてつまり表の行数) は .Dq Li net.link.generic.system.ifcount (または、明白な定数である .Dv CTL_NET , .Dv PF_LINK , .Dv NETLINK_GENERIC , .Dv IFMIB_SYSTEM , .Dv IFMIB_IFCOUNT ) によって与えられます。 特定のインタフェースを検索する管理アプリケーションは、1 番目の行から 開始し、指定されたインタフェースが検出されるか、インタフェースの総数に 達するまで、行から行へと表を移動します。 .Pp すべてのインタフェースに共通な、一般的なインタフェース情報は下記の手順で アクセスできます: .Bd -literal -offset indent 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); } .Ed .Pp .Li ifmibdata 構造体 のフィールドは下記のとおりです: .Bl -tag -width "ifmd_snd_drops" .It Li ifmd_name .Pq Li "char []" ユニット番号を含む、インタフェースの名前 .It Li ifmd_pcount .Pq Li int 無差別に接続を待っている数 .It Li ifmd_flags .Pq Li int インタフェースのフラグ ( .Aq Pa net/if.h で定義されています) .It Li ifmd_snd_len .Pq Li int 送信キューの現在の瞬間的な長さ .It Li ifmd_snd_drops .Pq Li int 送信キューが一杯だったためこのインタフェースがドロップしたパケット数 .It Li ifmd_data .Pq Li struct if_data .Aq Pa net/if.h に定義されている構造体からの詳細情報 .Pq Xr if_data 9 を参照して下さい .El .Pp クラス固有な情報は .Dv IFDATA_LINKSPECIFIC 列を代わりに調べることによって取得できます。構造体の形式および長さは インタフェースのクラスに依存することに注意して下さい。 .Dv IFT_ETHER, .Dv IFT_ISO88023 , .Dv IFT_STARLAN インタフェースについては, 構造体は .Dq Li struct ifmib_iso_8802_3 ( .Aq Pa net/if_mib.h で定義されています) と呼ばれていて、 イーサネットライクなネットワークのための .Tn "RFC 1650" MIB のスーパセットを実装しています。 .\" これはそのうち ethermib(4) で定義されます。 .Dv IFT_SLIP については, 構造体は .Dq Li struct sl_softc .Pq Aq Pa net/if_slvar.h です。 .Sh 関連項目 .Xr sysctl 3 , .Xr intro 4 , .Xr ifnet 9 .\" .Xr ethermib 4 , .Rs .%T "Definitions of Managed Objects for the Ethernet-like Interface Types Using SMIv2" .%A F. Kastenholz .%D 1994年 8月 .%O RFC 1650 .Re .Sh バグ ほとんどのイーサネットライクなインタフェースは Ethernet MIB を まだサポートしていません。サポートすることを知られているインタフェースには .Xr ed 4 及び .Xr de 4 を含みます。 にもかかわらず、すべてのインタフェースは自動的に generic MIB をサポートします。 .Sh 歴史 .Nm は .Fx 2.2 で初めて出現しました。