ce デバイスドライバは、GigaSwift Ethernet デバイスを制御します。ce ドライバは、Sun GigaSwift Ethernet アダプタの UNIX pci 名前プロパティ pci108e,abba に接続されます (108e はベンダー ID で、abba は PCI デバイス ID です)。
ce デバイスドライバのパラメタを手動で設定して、システムの各 Sun GigaSwift Ethernet アダプタデバイスをカスタマイズできます。ここでは、アダプタで使用される GigaSwift Ethernet デバイスの機能の概要、利用できる ce デバイスドライバのパラメタ、およびこのパラメタの設定方法について説明します。
Sun GigaSwift Ethernet UTP PCI アダプタは、自動ネゴシエーションモードの設定で示すすべての動作速度と動作モードで機能します。ce デバイスは、接続の遠隔地側 (接続相手) と自動ネゴシエーションを行い、共通の動作モードを選択します。また、ce デバイスは強制動作モードにも対応しています。
表 1–1 は、ce デバイスドライバのパラメタおよび設定の一覧です。
表 1-1 ce ドライバパラメタの状態と説明
パラメタ |
状態 |
説明 |
---|---|---|
instance |
読み取り・書き込み可 |
デバイスインスタンス |
adv_autoneg_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_1000fdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_1000hdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_100T4_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_100fdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_100hdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_10fdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_10hdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_asmpause_cap |
読み取り・書き込み可 |
フロー制御パラメタ |
adv_pause_cap |
読み取り・書き込み可 |
フロー制御パラメタ |
link_master |
読み取り・書き込み可 |
1 ギガビット強制モードのパラメタ |
use_int_xcvr |
読み取り・書き込み可 |
|
enable_ipg0 |
読み取り・書き込み可 |
パケット送信前の追加遅延を有効にする |
ipg0 |
読み取り・書き込み可 |
パケット送信前の追加遅延 |
ipg1 |
読み取り・書き込み可 |
パケット間の間隔 (IPG) パラメタ |
ipg2 |
読み取り・書き込み可 |
パケット間の間隔 (IPG) パラメタ |
rx_intr_pkts |
読み取り・書き込み可 |
割り込みブランキング値の受信 |
rx_intr_time |
読み取り・書き込み可 |
割り込みブランキング値の受信 |
red_dv4to6k |
読み取り・書き込み可 |
ランダム早期検出とパケットドロップベクトル |
red_dv6to8k |
読み取り・書き込み可 |
ランダム早期検出とパケットドロップベクトル |
red_dv8to10k |
読み取り・書き込み可 |
ランダム早期検出とパケットドロップベクトル |
red_dv10to12k |
読み取り・書き込み可 |
ランダム早期検出とパケットドロップベクトル |
tx_dma_weight |
読み取り・書き込み可 |
PCI インタフェースのパラメタ |
rx_dma_weight |
読み取り・書き込み可 |
PCI インタフェースのパラメタ |
infinit_burst |
読み取り・書き込み可 |
PCI インタフェースのパラメタ |
disable_64bit |
読み取り・書き込み可 |
PCI インタフェースのパラメタ |
次のパラメタでは、送信速度、受信速度、および二重方式の種類を指定します。表 1–2 は、動作モードのパラメタとデフォルト値の一覧です。
表 1-2 動作モードのパラメタ
パラメタ |
値と説明 |
---|---|
adv_autoneg_cap |
ハードウェアが通知するローカルインタフェースの機能 0 = 強制モード 1 = 自動ネゴシエーション (デフォルト) |
adv_1000fdx_cap |
ハードウェアが通知するローカルインタフェースの機能 0 = 1000 Mbps、全二重不可 1 = 1000 Mbps、全二重可 (デフォルト) |
adv_1000hdx_cap |
ハードウェアが通知するローカルインタフェースの機能 0 = 1000 Mbps、半二重不可 1 = 1000 Mbps、半二重可 (デフォルト) |
adv_100fdx_cap |
ハードウェアが通知するローカルインタフェースの機能 0 = 100 Mbps、全二重不可 1 = 100 Mbps、全二重可 (デフォルト) |
adv_100hdx_cap |
ハードウェアが通知するローカルインタフェースの機能 0 = 100 Mbps、半二重不可 1 = 100 Mbps、半二重可 (デフォルト) |
adv_10fdx_cap
|
ハードウェアが通知するローカルインタフェースの機能 0 = 10 Mbps、全二重不可 1 = 10 Mbps、全二重可 (デフォルト) |
adv_10hdx_cap |
ハードウェアが通知するローカルインタフェースの機能 0 = 10 Mbps、半二重不可 1 = 10 Mbps、半二重可 (デフォルト) |
初期設定が 0 のパラメタは変更できません。変更しても 0 に戻ります。
これらのパラメタがすべて 1 に設定されている場合、自動ネゴシエーションでは使用可能な最大の速度が使用されます。これらのパラメタがすべて 0 に設定されている場合、次のエラーメッセージが表示されます。
NOTICE: Last setting will leave ce1 with no link capabilities. WARNING: ce1: Restoring previous setting. |
ce デバイスは、IEEE 802.3x フレームのリンクレベルフロー制御プロトコル準拠の一時停止 (PAUSE) フレームの送信 (ソーシング) と受信 (ターミネーティング) に対応しています。フロー制御フレームを受信した ce デバイスは、転送レートを落すことができます。一方、ce デバイスは、フロー制御フレームを接続相手に送信して、接続相手がこの機能をサポートしている場合は、転送レートを落すように依頼します。デフォルトでは、自動ネゴシエーションの間のみ、送信と受信の両方で一時停止機能が有効となるようにドライバを設定してあります。
表 1–3 は、フロー制御キーワードおよびその機能の一覧です。
表 1-3 読み取り・書き込み可能なフロー制御キーワードの説明
キーワード |
説明 |
---|---|
adv_asmpause_cap |
アダプタは、一方向だけを一時停止させる非同期一時停止をサポートします。 0 = オフ (デフォルト) 1 = オン |
adv_pause_cap |
このパラメタには、adv_asmpause_cap の値に応じて 2 つの意味があります (デフォルト = 0)。 adv_asmpause_cap = 1 で、dv_pause_cap = 1 の場合、一時停止を受信します。 adv_asmpause_cap = 1 で、dv_pause_cap = 0 の場合、一時停止を送信します。 adv_asmpause_cap = 0 で、dv_pause_cap = 1 の場合、一時停止は送信も受信もされます。 adv_asmpause_cap = 0 の場合、dv_pause_cap は、一時停止機能を有効または無効のいずれかに指定します。 |
10/100 モードでは、自動ネゴシエーションを無効にし、接続を希望する速度に強制的に設定できます。ギガビット銅線インタフェースでもこの機能は利用できますが、接続のマスタとスレーブのいずれにするかを指定する必要があります。これは、link_master パラメタで指定します。通常スイッチをマスタとして有効にする場合、このパラメタはそのままにします (スレーブ操作がデフォルトのため)。これ以外の場合は、link_master を使用すると、ce をマスタとして有効にできます。
表 1-4 強制モードのパラメタ
パラメタ |
説明 |
---|---|
link_master |
1 に設定するとマスタ動作が有効になります。ただし、接続相手がスレーブであることを前提としています。 0 に設定するとスレーブ動作が有効になります。ただし、接続相手がスレーブであることを前提としています (デフォルト)。 |
ce デバイスは、enable_ipg0 というプログラム可能なモードをサポートしています。
enable_ipg0 が設定された (デフォルト) パケットをドライバが受信すると、そのパケットを送信する前に追加の遅延時間を付加します。ipg0 パラメタで設定されるこの遅延時間は、ipg1 パラメタと ipg2 パラメタで設定される遅延に追加されます。追加の ipg0 遅延によって、衝突を減少させることができます。
enable_ipg0 が無効の場合、ipg0 の値は無視され、追加の遅延は設定されません。ipg1 と ipg2 によって設定された遅延だけが使用されます。他のシステムが大量の連続パケットを送信し続ける場合、enable_ipg0 を無効にします。enable_ipg0 が設定されているシステムでは、ネットワーク上で時間が不足する可能性があります。
メディアバイト時間遅延である ipg0 パラメタを 0 〜 255 の間で設定すると、追加遅延を設定できます。
表 1–5 は、enable_ipg0 パラメタと ipg0 パラメタの一覧です。
表 1-5 enable_ipg0 と ipg0 パラメタの定義
パラメタ |
値 |
説明 |
---|---|---|
enable_ipg0 |
0 1 |
enable_ipg0 をリセット enable_ipg0 を設定 (デフォルト = 8) |
ipg0 |
0 〜 255 |
パケットを受信してから送信するまでの遅延時間 (間隔) (デフォルト = 8) |
ce デバイスは、プログラム可能なパケット間の間隔 (IPG: Inter-Packet Gap) パラメタである ipg1 と ipg2 に対応しています。IPG の合計値は、ipg1 と ipg2 の合計値になります。接続速度が 1,000 Mbps の場合、IPG の合計値は 0.096 マイクロ秒になります。
表 1–6 は、IPG パラメタのデフォルト値と許容値の一覧です。
表 1-6 読み取り・書き込み可能なパケット間隔 (IPG) パラメタの値と説明
パラメタ |
値 (バイト時間) |
説明 |
---|---|---|
ipg1 |
0 〜 255 |
パケット間隔 1 (デフォルト = 8) |
ipg2 |
0 〜 255 |
パケット間隔 2 (デフォルト = 4) |
デフォルトでは、ipg1 が 8 バイト時間、ipg2 が 4 バイト時間に設定されます。いずれも標準値です (バイト時間とは、接続速度が 1000 Mbps の場合に 1 バイトを送信するのにかかる時間です)。
これより長い IPG (ipg1 と ipg2 の合計) を使用するシステムがネットワークに存在し、ネットワークへのアクセスが遅く感じられる場合、他のマシンの長い IPG に一致するように ipg1 と ipg2 の値を大きくします。
表 1–7 は、受信割り込みブランキング値です。
表 1-7 エイリアス読み取り用 RX ブランキングレジスタ
フィールド名 |
値 |
説明 |
---|---|---|
rx_intr_pkts |
0 〜 511 |
最後のパケットの処理後、指定した数のパケットを受信したら割り込みます。0 パケットによるブランキングが行われないことを示します (デフォルト = 3)。 |
rx_intr_time |
0 〜 524287 |
最後のパケットの処理後、4.5 マイクロ秒のパルス刻みが経過してから割り込みます。0 という値は時間によるブランキングが行われないことを示します (デフォルト = 1250)。 |
表 1–8 は、RX ランダム早期検出 8 ビットベクトルの説明です。これを使用すると、ランダム早期ドロップ (RED) のしきい値を有効にできます。受信パケットが RED 範囲に達すると、あらかじめ設定された頻度に従ってドロップされます。FIFO のレベルが上がったときは、設定頻度も増やす必要があります。制御パケットはドロップされず、統計にもカウントされません。
表 1-8 RX ランダム早期検出 8 ビットベクトル
フィールド名 |
値 |
説明 |
---|---|---|
red_dv4to6k |
0 〜 255 |
FIFO のしきい値が 4,096 バイトより大きく 6,144 バイトより小さい場合のランダム早期検出とパケットドロップベクトルです。ドロップの頻度は、12.5% の粒度 (granularity) でプログラムできます。たとえば、ビット 0 を設定すると、8 パケットのうち最初のパケットがこの範囲でドロップされます (デフォルト = 0)。 |
red_dv6to8k |
0 〜 255 |
FIFO のしきい値が 6,144 バイトより大きく 8,192 バイトより小さい場合のランダム早期検出とパケットドロップベクトルです。ドロップの頻度は、12.5% の粒度 (granularity) でプログラムできます。たとえば、ビット 8 を設定すると、8 パケットのうち最初のパケットがこの範囲でドロップされます (デフォルト = 0)。 |
red_dv8to10k |
0 〜 255 |
FIFO のしきい値が 8,192 バイトより大きく 10,240 バイトより小さい場合のランダム早期検出とパケットドロップベクトルです。ドロップの頻度は、12.5% の粒度 (granularity) でプログラムできます。たとえば、ビット 16 を設定すると、8 パケットのうち最初のパケットがこの範囲でドロップされます (デフォルト = 0)。 |
red_dv10to12k |
0 〜 255 |
FIFO のしきい値が 10,240 バイトより大きく 12,288 バイトより小さい場合のランダム早期検出とパケットドロップベクトルです。ドロップの頻度は、12.5% の粒度 (granularity) でプログラムできます。たとえば、ビット 24 を設定すると、8 パケットのうち最初のパケットがこの範囲でドロップされます (デフォルト = 0)。 |
このパラメタを使用すると、PCI インタフェース機能を変更して、特定のアプリケーションに対する PCI インタフェースのパフォーマンスを向上できます。
表 1-9 PCI バスインタフェースのパラメタ
パラメタ |
説明 |
---|---|
tx_dma_weight |
加重ラウンドロビン調停のときに TX 側に対して考慮する乗数を指定します。値は 0 〜 3 です (デフォルト = 0)。0 は加重しないことを示しています。他の値を指定すると、このトラフィックで 2 のべき乗の割り増し加重となります。たとえば、tx_dma_weight = 0 で、rx_dma_weight = 3 の場合、RX トラフィックが連続して到着している限り、PCI にアクセスする優先順位は TX の 8 倍以上となります。 |
rx_dma_weight |
加重ラウンドロビン調停のときに RX 側に考慮するための乗数を指定します。値は 0 〜 3 です (デフォルト = 0)。 |
infinite_burst |
無限バースト機能が利用できます。このパラメタが有効の場合、システムは 無限バーストをサポートします。全部のパケットがバス上で転送終了されるまでアダプタはバスを解放しません。値は 0 または 1 です (デフォルト = 0)。 |
disable_64bit |
アダプタの 64 ビット機能を無効にします。場合によっては、この機能を無効にする方が便利です。 値は 0 または 1 です (デフォルト = 0、64 ビット機能は有効です)。 |