特記事項: Sun GigabitEthernet デバイスドライバ

ドライバパラメタの設定

この節ではアダプタに組み込まれている GigabitEthernet ASIC の機能についてその概要を解説します。さらに ge ドライバのパラメタをリストにまとめ、各パラメタの設定方法を解説します。

ge ドライバは Sun GigabitEthernet アダプタデバイスを制御します。SUNW,sbus-gemSUNW,pci-gem ノードの標準設定では、Sun GigabitEthernet デバイスは network として識別されます。ge ドライバの接続相手は、Sun GigabitEthernet/P アダプタの場合は pci108e,2bad に互換性のあるデバイス、Sun GigabitEthernet/S アダプタの場合は SUNW,sbus-gem に互換性のあるデバイスになります。システムの Sun GigabitEthernet アダプタ は、それぞれ個別に手動でパラメタ値を設定変更できます。

GigabitEthernet MAC

GigabitEthernet MAC (GEM) は 1000BASE-SX ネットワークインタフェースに対応しています。このドライバはIEEE の 802.3z Ethernet 規格に適合しており、自動的に接続速度を 1000 Mbps に設定します。GEM PCI ASIC は PCI インタフェース、MAC (Media Access Control) 機能、PCS (Physical Code Sublayer) 機能を提供します。GEM SBus ASIC は SBus インタフェース、MAC 機能、PCS 機能を提供します。1000BASE-SX 準拠の SC コネクタを ASIC に接続する場合は、外部 SERDES を使用して物理層機能を提供します。

GEM MAC と PCS は 「自動ネゴシエーションモード」に示されているすべての接続速度と動作モードに対応しています。PCS は接続相手と自動ネゴシエーションを行い、共通の動作モードを選択します。

PCS は強制動作モードにも対応しています。ge.conf ファイルを作成することにより、速度とモードを指定できるようになっています。

ドライバパラメタの値と定義

ge ドライバのパラメタおよびその設定を 表 1-1 に示します。

表 1-1 ge ドライバパラメタの状態と説明

パラメタ 

状態 

説明 

link_status

読み取り専用 

現在の状態 

link_speed

読み取り専用 

現在の状態 

link_mode

読み取り専用 

現在の状態 

ipg1

読み取り・書き込み可 

パケット間隔パラメタ 

ipg2

読み取り・書き込み可 

パケット間隔パラメタ 

instance

読み取り・書き込み可 

デバイスインスタンス 

lance_mode

読み取り・書き込み可 

パケット転送前の追加遅延 

ipg0

読み取り・書き込み可 

パケット転送後の追加遅延 

adv_1000autoneg_cap

読み取り・書き込み可 

動作モードのパラメタ 

adv_1000fdx_cap

読み取り・書き込み可 

動作モードのパラメタ 

adv_1000hdx_cap

読み取り・書き込み可 

動作モードのパラメタ 

adv_pauseTX

読み取り・書き込み可 

動作モードのパラメタ 

adv_pauseRX

読み取り・書き込み可 

動作モードのパラメタ 

1000autoneg_cap

読み取り専用 

PCS の自動ネゴシエーション機能 

1000fdx_cap

読み取り専用 

PCS の全二重可 

1000hdx_cap

読み取り専用 

PCS の半二重可 

asm_dir_cap

読み取り専用 

PCS ASM_DIR 機能 

pause_cap

読み取り専用 

PCS 対称型 PAUSE 機能  

lp_1000autoneg_cap

読み取り専用 

接続相手の自動ネゴシエーション機能 

lp_1000fdx_cap

読み取り専用 

接続相手の機能 

lp_1000hdx_cap

読み取り専用 

接続相手の機能 

lp_asm_dir_cap

読み取り専用 

接続相手の機能 

lp_pause_cap

読み取り専用 

接続相手の機能 

現在の状態の定義

表 1-2 に示す読み取り専用パラメータは、インタフェースの動作モードに関する情報を提供します。これらのパラメタの値から、現在の接続状態がどうなっているか判断することができます。

表 1-2 現在の状態を示す読み取り専用パラメタ

パラメタ 

説明および値 

link_status

現在の接続状態 

0 = 切断 

1 = 接続 

link_speed

状態が接続の場合のみ有効 

0 = 接続されていない 

1000 = 1000 Mbps で接続 

link_mode

 

 

状態が接続の場合のみ有効 

0 = 半二重 

1 = 全二重 

フロー制御パラメタ

GEM ASIC は、IEEE 802.3x フレームのリンクレベルフロー制御プロトコル準拠の一時停止 (PAUSE) フレームの送信(ソーシング)と受信(ターミネーティング ) に対応しています。例えば 、フロー制御フレームを受信すると、それに反応して転送レートを落とすように GEM を設定できます。あるいは逆に、フロー制御フレームを接続相手に送信して、接続相手の転送レートを落とす ようにも設定できます (ただし接続相手もこの機能をサポートしている場合のみ可能です) 。デフォルトでは、GEM の一時停止フレーム受信機能は、自動ネゴシエーションの間のみ有効となるように設定してあります。

表 1-3 フロー制御パラメタ (読み取り/書き込み可)

パラメタ 

 

値 

(on/off) 

説明 

 

adv_pauseTX

0, 1 

PAUSE の送信可/不可 (デフォルトでは不可) 

adv_pauseRX

0, 1 

PAUSE の受信可/不可 (デフォルトでは可) 

通常の状況であれば、GEM の側からフロー制御フレームを送信する必要はありません。しかし転送速度の遅いバス (例えば 33 MHz の PCI バススロット) を使用していて、かつフレームの受信が非常に多い場合などは、FIFO の受信オーバーフローが原因でパフォーマンスが低下する可能性があります。そのような状況でも、接続相手側がフロー制御フレーム PAUSE の受信に対応していれば、adv_pauseTX の設定を「送信可能」に設定して自動ネゴシエーション機能を再起動するだけで、GEM のパフォーマンスを改善できます。

パケット間隔 (IPG) パラメタ

GEM ASIC はプログラム可能なパケット間隔 (IPG: Interpacket Gap) パラメタとして、ipg1 および ipg2 をサポートしています。ipg1ipg2 の合計が総 IPG となります。接続速度が 1000 Mbps の場合、IPG は 0.096 マイクロ秒になります。

表 1-4 に IPG パラメタ ipg1ipg2 のデフォルト値および設定可能な値を示します。

表 1-4 パケット間隔パラメタ (読み取り/書き込み可)

パラメタ 

値(バイト時間) 

説明 

ipg1

0, 255 

ipg1 = 8 (初期化時のデフォルト値)

ipg2

0, 255 

ipg1 = 4 (初期化時のデフォルト値)

デフォルトでは ipg1 が 8 バイト時間、ipg2 は 4 バイト時間に設定されており、この値をパケット間隔パラメタの標準値とします (バイト時間とは、接続速度 1000 Mbps で 1 バイトの転送にかかる時間です) 。

ネットワークに標準値より大きい IPG (ipg1ipg2の合計値) を使用しているマシンが存在し、それらのマシンのネットワークアクセスが遅い場合は、他のマシンの ipg1ipg2 の値をそれらのマシンの IPG 値まで引き上げてください。

lance_modeipg0 を使用したパケット送信前の追加遅延の定義

GEM ASIC は lance_mode というプログラム可能モードに対応しています。ipg0 は、この lance_mode の設定に使用します。

lance_mode を有効に設定すると (デフォルトの設定 )、パラメタ ipg1 および ipg2 で設定したパケット間隔に加えてさらに、ipg0 パラメタ を使用してパケット送信前の遅延時間を設定できます。ipg0 による遅延時間の追加により、パケットの衝突を減少させることができます。しかし、lance_mode を有効にしたシステムでは、ネットワーク上で十分な転送時間を確保できない場合があります。

lance_mode を無効に設定すると、ipg0 に設定した値は無視され、追加遅延機能は働きません。ipg1ipg2 に設定したパケット間隔のみが遅延時間として機能します。他のシステムが非常に大規模な連続パケットを送信している場合 (つまり、パケット間に隙間のない転送が長時間続く場合) は、この lance_mode を無効に設定してください。

ipg0 には、0 から 31 までの値を設定できます。

表 1-5 にパラメタ lance_mode および ipg0 の設定に使う値を示します。

表 1-5 パラメタ lance_mode および ipg0 の設定に使う値

パラメタ 

値の説明 

lance_mode

0 = lance_mode 無効

1 = lance_mode 有効 (デフォルト)

ipg0

0 から 30 = パケット送信前 (パケット受信後) に追加する IPG 値 

動作モードのパラメタ

動作モードのパラメタと各パラメタのデフォルト値を 表 1-6 に示します。

表 1-6 動作モードのパラメタ

パラメタ 

値の説明 

adv_1000autoneg_cap

ハードウェアが通知するローカル PCS 機能 

0 = 強制モード 

1 = 自動ネゴシエーションモード (デフォルト) 

adv_1000fdx_cap

 

ハードウェアが通知するローカル PCS 機能 0 = 全二重で 1000 Mビット/秒、不可 

1 = 全二重で 1000 Mビット/秒、可 (デフォルト) 

adv_1000hdx_cap

ハードウェアが通知するローカル PCS 機能 0 = 全二重で 1000 Mビット/秒、不可  

1 = 全二重で 1000 Mビット/秒、可 (デフォルト) 

adv_pauseTX

ハードウェアが通知するローカル PCS 機能 0 = TX 機能を一時停止しない (デフォルト) 

1 = TX 機能を一時停止する 

adv_pauseRX

ハードウェアが通知するローカル PCS 機能 0 = RX 機能を一時停止しない 

1 = RX 機能を一時停止する (デフォルト) 

ローカル PCS 機能のレポート

GEM PCS のサポートしているPCS 機能を表示する読み取り専用のパラメタを 、表 1-7 に示します。この表のパラメタは、ハードウェアの機能を表しています。.

表 1-7 PCS 機能 (読み取り専用)

パラメタ 

説明 (ローカル PCS 機能) 

1000autoneg_cap

0 = 自動ネゴシエーション不可 

1 = 自動ネゴシエーション可 

1000fdx_cap

ローカル PCS の全二重機能 

0 = 全二重で 1000 Mビット/秒、不可 

1 = 全二重で 1000 Mビット/秒、可 

1000hdx_cap

ローカル PCS の半二重機能 

0 = 半二重で 1000 Mビット/秒、不可 

1 = 半二重で 1000 Mビット/秒、可 

asm_dir_cap

ローカル PCS のフロー制御機能 

0 = 非対称型一時停止、不可 

1 = 非対称型一時停止、可 (ローカルデバイスから) 

pause_cap

ローカル PCS フロー制御機能 

0 = 対称型一時停止、不可 

1 = 対称型一時停止、可 

接続相手の機能の報告

接続相手の機能を表示する読み取り専用パラメータを、表 1-8 に示します。

表 1-8 接続相手の機能 (読み取り専用)

パラメタ 

値の説明 

lp_1000autoneg_cap

0 = 自動ネゴシエーションなし 

1 = 自動ネゴシエーションあり 

lp_1000fdx_cap

0 = 全二重で 1000 Mビット/秒 ではない 

1 = 全二重で 1000 Mビット/秒 

lp_1000hdx_cap

0 = 半二重で 1000 Mビット/秒 ではない 

1 = 半二重で 1000 Mビット/秒 

lp_asm_dir_cap

0 = 非対称型一時停止、不可 

1 = 非対称型一時停止、可 

lp_pause_cap

0 = 対称型一時停止、不可 

1 = 対称型一時停止、可 

接続相手が自動ネゴシエーション機能に対応していない場合 (パラメタ lp_1000autoneg_cap の値が 0 の時) は、表 1-8 の残りの機能すべてに対応しません。従ってパラメタの値はすべて 0 になります。

接続相手が自動ネゴシエーション機能に対応している場合 (パラメタ lp_autoneg_cap の値が 1 の時) は、自動ネゴシエーション機能を使用して接続相手の機能を読み取り、速度およびモードの情報を表示します。