この章では hme デバイスドライバのパラメタの設定方法を説明します。
hme ドライバのパラメタの一覧を以下に示します。
表 2-1 hme ドライバのパラメタの状態と説明
パラメタ |
状態 |
説明 |
---|---|---|
transceiver_inuse |
読み取り専用 |
現在の状態 |
link_status |
読み取り専用 |
現在の状態 |
link_speed |
読み取り専用 |
現在の状態 |
link_mode |
読み取り専用 |
現在の状態 |
ipg1 |
読み取り・書き込み可 |
パケット間の間隔 (IPG) パラメタ |
ipg2 |
読み取り・書き込み可 |
パケット間の間隔 (IPG) パラメタ |
use_int_xcvr |
読み取り・書き込み可 |
動作モードのパラメタ |
pace_size |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_autoneg_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_100T4_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_100fdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_100hdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_10fdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
adv_10hdx_cap |
読み取り・書き込み可 |
動作モードのパラメタ |
autoneg_cap |
読み取り専用 |
ローカルトランシーバの 自動ネゴシエーション機能 |
100T4_cap |
読み取り専用 |
ハードウェアの ローカルトランシーバ機能 |
100fdx_cap |
読み取り専用 |
ハードウェアの ローカルトランシーバ機能 |
100hdx_cap |
読み取り専用 |
ハードウェアの ローカルトランシーバ機能 |
10fdx_cap |
読み取り専用 |
ハードウェアの ローカルトランシーバ機能 |
10hdx_cap |
読み取り専用 |
ハードウェアの ローカルトランシーバ機能 |
lp_autoneg_cap |
読み取り専用 |
接続相手の 自動ネゴシエーション機能 |
lp_100T4_cap |
読み取り専用 |
接続相手の機能 |
lp_100fdx_cap |
読み取り専用 |
接続相手の機能 |
lp_100hdx_cap |
読み取り専用 |
接続相手の機能 |
lp_10fdx_cap |
読み取り専用 |
接続相手の機能 |
lp_10hdx_cap |
読み取り専用 |
接続相手の機能 |
instance |
読み取り・書き込み可 |
デバイスインスタンス |
lance_mode |
読み取り・書き込み可 |
パケット送信前の追加遅延 |
ipg0 |
読み取り・書き込み可 |
パケット送信前の追加遅延 |
読み取り専用のパラメタのインタフェースの動作モードと現在の状態を以下に示します。
表 2-2 現在の状態を定義する読み取り専用パラメタ
パラメタ |
値 |
説明 |
---|---|---|
transceiver_inuse |
0 1 |
= 内部トランシーバ = 外部トランシーバ |
link_status |
0 1 |
現在の接続状態 = 接続 = 切断 |
link_speed |
0 1 |
状態が接続の場合のみ有効 = 100 Mbps = 10 Mbps |
link_mode |
0 1 |
状態が接続の場合のみ有効 = 全二重 = 半二重 |
FEPS ASIC は、プログラム可能なパケット間の間隔 (IPG: Inter-Packet Gap) パラメタの ipg1 と ipg2 に対応しています。IPG の合計値は、ipg1 と ipg2 の合計値になります。自動ネゴシエーションプロトコルによって接続速度が 10 Mbps に設定されている場合、デフォルトの IPG 合計は 9.6 ms になります。接続速度が 100 Mbps の場合は、0.96 ms になります。
IPG パラメタの ipg1 および ipg2 のデフォルト値と許容値を以下に示します。
表 2-3 読み取り・書き込み可能なパケット間隔 (IPG) パラメタ
パラメタ |
値 (バイト時間) |
説明 |
---|---|---|
ipg1 |
0、255 |
ipg1 = 8 (初期化時のデフォルト値) |
ipg2 |
0、255 |
ipg2 = 4 (初期化時のデフォルト値) |
デフォルトの設定では、ipg1 が 8 バイト時間に設定され、ipg2 が 4 バイト時間に設定されます。これらはともに標準値です。バイト時間は、100 Mbps または 10 Mbps の接続速度で 1 バイトを送信するのに要する時間です。
これより長い IPG (ipg1 と ipg2 の合計) を使用するシステムがネットワークに存在し、それらのマシンによるネットワークへのアクセスが遅い場合は、長い IPG に一致するように他のマシンの ipg1 と ipg2 の値を大きくしてください。
以下の 2 つの ASIC は、lance_mode という、プログラム可能なモードに対応しています。ipg0 は、lance_mode に関係するパラメタです。
Fast Ethernet Parallel Port SCSI (SBus 用 FEPS)
PCI Fast Ethernet and Expansion (PCI 用 PFEX)
lance_mode が有効な場合は (デフォルトの設定)、ipg0 パラメタを設定することによって、パケットを受信してから送信するまでの間に遅延が追加されます。ipg0 パラメタによって設定されるこの遅延は、ipg1 と ipg2 パラメタによって設定される遅延に追加されます。ipg0 で追加遅延を設定することによって、衝突を減少させることができます。lance_mode を有効にしたシステムでは、ネットワーク上で時間が不足する可能性があります。
lance_mode が無効な場合は、ipg0 の値は無視され、追加遅延は設定されません。この場合は、ipg1 と ipg2 によって設定された遅延だけが使用されます。他のシステムから大量の連続したパケットが送信され続けている場合は、lance_mode を無効にしてください。
追加遅延は、ipg0 パラメタに 0 〜 31 の値を設定することによって設定することができます。これは、ニブル時間で表した遅延です。ニブル時間は、接続上で 4 ビットを送信するために必要な時間です。接続速度が 10 Mbps の場合、ニブル時間は 400 ナノ秒となります。接続速度が 100 Mbps の場合は、40 ナノ秒となります。
たとえば、接続の速度が 10 Mbps で、ipg0 を 20 ニブル時間に設定した場合、追加遅延は 20 × 400 ナノ秒で 8000 ナノ秒になります。接続速度が 100 Mbps で、ipg0 を 30 ニブル時間に設定した場合は、30 × 40 ナノ秒で 1200 ナノ秒になります。
lance_mode と ipg0 パラメタの定義を以下に示します。
表 2-4 lance_mode と ipg0 パラメタの定義
パラメタ |
値 |
|
---|---|---|
lance_mode |
0 1 |
= lance_mode 無効 = lance_mode 有効 (デフォルト) |
ipg0 |
0 〜 31* |
パケット送信前に IPG を追加 (1 パケット受信後) |
* デフォルト値は 16 ニブル時間です。10 Mbps の場合は 6.4 マイクロ秒、100 Mbps の場合は 0.64 マイクロ秒になります。 |
動作モードのパラメタとそのデフォルト値を以下に示します。
表 2-5 動作モードのパラメタ
パラメタ |
値 |
説明 |
---|---|---|
adv_autoneg_cap |
0 1 |
ハードウェアが通知するローカルトランシーバの機能 = 強制モード = 自動ネゴシエーション (デフォルト) |
adv_100T4_cap* |
0 1 |
ハードウェアが通知するローカルトランシーバの機能 (読み取り・書き込みパラメタ) = 100 BASE-T4 不可 = 100 BASE-T4 可 |
adv_100fdx_cap* |
0 1 |
ハードウェアが通知するローカルトランシーバの機能 (読み取り・書き込みパラメタ) = 100 Mbps、全二重不可 (Solaris 2.5、2.5.1 ソフトウェア環境でデフォルト = 100 Mbps、全二重可 (Solaris 2.6 ソフトウェア環境でデフォルト) |
adv_100hdx_cap* |
0 1 |
ハードウェアが通知するローカルトランシーバの機能 (読み取り・書き込みパラメタ) = 100 Mbps、半二重不可 = 100 Mbps、半二重可 (デフォルト) |
adv_10fdx_cap* |
0 1 |
ハードウェアが通知するローカルトランシーバの機能 (読み取り・書き込みパラメタ) = 10 Mbps、全二重不可 (デフォルト) = 10 Mbps、全二重可 |
adv_10hdx_cap |
0 1 |
ハードウェアが通知するローカルトランシーバの機能 (読み取り・書き込みパラメタ) = 10 Mbps、半二重不可 = 10 Mbps、半二重可 (デフォルト) |
use_int_xcvr |
0 1 |
ユーザーがネットワーク用に選択したローカルトランシーバの機能 = 接続されている外部トランシーバを使用する (デフォルト) = 外部トランシーバが接続されている場合でも内部トランシーバを使用する |
* これらのパラメタの優先順位は、高いものから順に adv_100fdx_cap、adv_100T4_cap、adv_100hdx_cap、adv_10fdx_cap、adv_10hdx_cap となります。 |
use_int_xcvr パラメタを使用して、デフォルトの設定を変更することができます。たとえば、外部トランシーバを選択できるドライバであっても、内部トランシーバを選択するように設定することができます。内部トランシーバと外部トランシーバの選択は、ハードウェアではなく、ドライバによって行われます。
MII に外部トランシーバが接続されている場合、ドライバは、デフォルトの use_int_xcvr 0 という設定により、外部トランシーバを選択します。外部トランシーバが存在しない場合は、内部トランシーバが選択されます。このパラメタが use_int_xcvr 1 と設定されている場合は、ドライバは、外部トランシーバが接続されている場合でも内部トランシーバを選択します。
pace_size パラメタ (表 2-6 を参照) は、一度に送信することができる連続パケットの最大数を定義します。pace_size の値が 0 の場合は、送信することができる連続パケットの数に制限はありません。
表 2-6 連続パケットの送信制限
パラメタ |
値 |
説明 |
---|---|---|
pace_size |
1 〜 255
0 |
一度に送信できる連続パケット数
一度に送信できる連続パケット数の制限なし (デフォルト) |
トランシーバ (内部トランシーバまたは外部トランシーバ) の機能を示す読み取り専用のパラメタを以下に示します。
表 2-7 トランシーバの機能を示す読み取り専用パラメタ
パラメタ |
値 |
説明 |
---|---|---|
autoneg_cap |
0 1 |
ハードウェアのローカルトランシーバ機能 = 自動ネゴシエーション可 = 自動ネゴシエーション不可 |
100T4_cap |
0 1 |
ハードウェアのローカル外部トランシーバ機能 = 100 BASE-T4 可 = 100 BASE-T4 不可 |
100fdx_cap |
0 1 |
ハードウェアのローカルトランシーバ機能 (起動時に初期化) = 100 Mbps、全二重可 = 100 Mbps、全二重不可 |
100hdx_cap |
0 1 |
ハードウェアのローカルトランシーバ機能 (起動時に初期化) = 100 Mbps、半二重可 = 100 Mbps、半二重不可 |
10fdx_cap |
0 1 |
ハードウェアのローカルトランシーバ機能 (起動時に初期化) = 10 Mbps、全二重可 = 10 Mbps、全二重不可 |
10hdx_cap |
0 1 |
ハードウェアのローカルトランシーバ機能 (起動時に初期化) = 10 Mbps、半二重可 = 10 Mbps、半二重不可 |
表 2-7 のパラメタは、ハードウェアの機能を定義するものです。内部トランシーバは、上記のすべての機能に対応しています。外部トランシーバの機能は、デバイスによって異なります。外部トランシーバで自動ネゴシエーションが不可の場合でも、上記のすべての速度とモード (100 Mbps、10 Mbps、半二重、全二重) に対応している場合は、ユーザーが外部トランシーバの動作速度と動作モードを設定をする必要があります。
接続相手の機能を示す読み取り専用パラメタを以下に示します。
表 2-8 接続相手の機能を示す読み取り専用パラメタ
パラメタ |
値 |
説明 |
---|---|---|
lp_autoneg_cap |
0 1 |
= 自動ネゴシエーション不可 = 自動ネゴシエーション可 |
lp_100T4_cap |
0 1 |
= 100 BASE-T4 不可 = 100 BASE-T4 可 |
lp_100fdx_cap |
0 1 |
= 100 Mbps、全二重送信不可 = 100 Mbps、全二重送信可 |
lp_100hdx_cap |
0 1 |
= 100 Mbps、半二重送信不可 = 100 Mbps、半二重送信可 |
lp_10fdx_cap |
0 1 |
= 10 Mbps、全二重送信不可 = 10 Mbps、全二重送信可 |
lp_10hdx_cap |
0 1 |
= 10 Mbps、半二重送信不可 = 10 Mbps、半二重送信可 |
接続相手が自動ネゴシエーションを行うことができない場合 (lp_autoneg_cap が 0 の場合) は、パラメタの値は 0 となり、表 2-8 の情報は適用されません。
接続相手が自動ネゴシエーションを行うことができる場合 (lp_autoneg_cap が 1 の場合) は、自動ネゴシエーションを使用して接続相手の機能を調べることによって、動作速度と動作モードの情報を表示することができます。