名前 | 形式 | 機能説明 | アプリケーションプログラミングインタフェース | 構成 | ファイル | 属性 | 関連項目
/dev/bge*
bge Gigabit Ethernet ドライバは、マルチスレッド化された、ロード可能かつ複製可能な GLD ベースの STREAMS ドライバであり、システムマザーボードに装着された Broadcom BCM57xx (BCM5703/5704、および x86 上の BCM5700/5701/5705/5782) Gigabit Ethernet コントローラでの Data Link Provider Interface (dlpi(7P)) をサポートします。BCM5700/BCM5701/BCM5704S を除いてこれらのデバイスには MAC と PHY 機能が組み込まれており、RJ-45 コネクタで 3 種類の通信速度での (銅線による) Ethernet 動作を行うことができます。
(BCM5700/BCM5701/BCM5704S の MAC チップセットには PHY は統合されていません)。
bge ドライバ機能には、コントローラの初期設定、フレームの送受信、プロミスキュアスとマルチキャストのサポート、エラーの回復と報告が含まれます。
bge ドライバとハードウェアは、1000Base-T 標準規格で指定されたプロトコルである「自動ネゴシエーション」に対応しています。自動ネゴシエーションにより、各デバイスではそのデバイスに備わっている機能を通知し、そのピア (接続相手) を検出できるようになります。手動で構成を行うことなく、双方の接続相手でサポートされる最適な共通モードが自動的に選択されて、最大のスループットが得られます。bge ドライバを使用すると、接続相手側で通知される機能とは関係なく、通知する機能を、最高速度未満に (最高速のインタフェースを必要としないよう) 構成したり、特定の動作モードに設定したりすることもできます。
システムのマザーボードに装着されているすべての BCM57xx デバイス (BCM5703/5704、および x86 上の BCM5700/5701/5705/5782) にアクセスするには、クローニング文字特殊デバイスである /dev/bge を使用します。
bge ドライバは使用される /kernel/misc/gld によって異なります。この /kernel/misc/gld は、LAN ドライバに必要な DLPI と STREAMS 機能を bge ドライバに提供する、ロード可能なカーネルモジュールです。サポートしている基本式についての詳細は、gld(7D) を参照してください。
開かれているストリームを特定のデバイス (PPA) に関連付けるには、DL_ATTACH_REQ メッセージを明示的に送信する必要があります。PPA ID は符号なし整数データ型として解釈され、対応するデバイスインスタンス (ユニット) 番号を示します。PPA フィールド値がシステムで有効なデバイスインスタンス番号と対応していない場合は、ドライバからエラー (DL_ERROR_ACK) が返されます。デバイスは、最初に接続されるときに初期化され、最後に切り離されるときに初期化解除 (停止) されます。
ドライバが DL_INFO_REQ に応答して DL_INFO_ACK 基本式の中で返す値は、以下のような値です。
最大 SDU は 1500 (ETHERMTU - <sys/ethernet.h> で定義済み)。
最小 SDU は 0。
DLSAP アドレス長は 8。
MAC タイプは DL_ETHER。
SAP の長さの値は -2。これは、DLSAP アドレス内では、物理アドレス構成要素のすぐ後に 2 バイトの SAP 構成要素が付くことを意味します。
ブロードキャストアドレス値は、Ethernet/IEEE ブロードキャストアドレス (FF:FF:FF:FF:FF:FF)。
DL_ATTACHED 状態になったときは、DL_BIND_REQ を送信して、特定のサービスアクセスポイント (SAP) をストリームに関連付ける必要があります。
デフォルトでは、bge ドライバで自動ネゴシエーションが実行されて接続速度とモードが選択されます。接続速度とモードは、IEEE803.2 標準規格に従い、以下のいずれかの組み合わせのうちから選択されます。
1000 Mbps、全二重
1000 Mbps、半二重
100 Mbps、全二重
100 Mbps、半二重
10 Mbps、全二重
10 Mbps、半二重
自動ネゴシエーションプロトコルでは、双方の接続相手でサポートされる最適な共通モードとして、以下が自動的に選択されます。
速度 (1000 Mbps、100 Mbps、または 10 Mbps)
動作モード (全二重または半二重)
bge デバイスはすべての動作モードに対応しているので、結果的には相手側のデバイスでサポートされる最高のスループットモードが選択されることになります。
また、ndd(1M) を使用して bge デバイスが通知する機能を設定することもできます。 bge ドライバは、adv_ で始まる名前が付いたパラメタをサポートします (下記を参照)。これらのパラメタには、デバイスでその動作モードを通知するかどうかを決定するブール型の値が含まれています。 adv_pause_cap は、リンクパートナに半二重または全二重ポーズを通知するかどうかを示します。そして、adv_asym_pause_cap を設定すると、bge は、非同期ポーズが必要なリンクパートナに非同期ポーズを通知できます。さらに、adv_100T4_cap を使用すると、bge は、自分の 100T4 機能をリンクパートナに通知できます。 adv_autoneg_cap パラメタでは、自動ネゴシエーションを実行するかどうかを制御します。adv_autoneg_cap が 0 に設定されている場合には、ドライバは、以下に示す優先順位で、最初にゼロでないパラメタが指定されている動作モードを実行します。
(最高の優先順位/最大のスループット) adv_1000fdx_cap 1000Mbps 全二重 adv_1000hdx_cap 1000Mpbs 半二重 adv_100fdx_cap 100Mpbs 全二重 adv_100hdx_cap 100Mpbs 半二重 adv_10fdx_cap 10Mpbs 全二重 adv_10hdx_cap 10Mpbs 半二重 (最低の優先順位/最小のスループット)
たとえば、デバイス「bge2」がギガビット機能を通知しないようにするには、(スーパーユーザーとして) 以下のように入力します。
# ndd -set /dev/bge2 adv_1000hdx_cap 0 # ndd -set /dev/bge2 adv_1000fdx_cap 0
デフォルトではすべての機能が使用可能になっています。いずれかの機能のパラメタを変更すると、接続相手では新たに変更された機能を使って接続速度と二重モードの再ネゴシエーションが行われるため、接続が切断されることに注意してください。
現在のパラメタ設定は、ndd -get を使用すると確認できます。また、ドライバは、ndd パラメタを使って現在の接続の状態、速度、および作業モードの設定をエクスポートします (これらの設定は読み取り専用で、変更することはできません)。たとえば、デバイス bge0 の接続状態を調べるには、次のように入力します。
# ndd -get /dev/bge0 link_status 1 # ndd -get /dev/bge0 link_speed 100 # ndd -get /dev/bge0 link_duplex 2 # ndd -get /dev/bge0 link_rx_pause 1 # ndd -get /dev/bge0 link_tx_pause 1
上記の出力結果は、このリンクがその rx/tx 方向のポーズ機能を使用して、100Mbps 全二重で起動および動作していることを示します。さらに、このドライバは loop_mode でその作業モードをエクスポートしています。loop_mode を 0 に設定した場合、ループバックモードは無効になります。
文字特殊デバイス
SPARC bge ドライババイナリ
64 ビット x86 プラットフォーム用のカーネルモジュール
32 ビット x86 bge ドライバのバイナリ
64 ビット x86 bge ドライバのバイナリ
以下の属性については、attributes(5) を参照してください。
属性タイプ | 属性値 |
---|---|
アーキテクチャ | SPARC、x86 |
attributes(5)、gld(7D)、streamio(7I)、dlpi(7P)
『Writing Device Drivers』
『STREAMS Programming Guide』
『Network Interfaces Programmer's Guide』
名前 | 形式 | 機能説明 | アプリケーションプログラミングインタフェース | 構成 | ファイル | 属性 | 関連項目