EN JA
PATM(4)
PATM(4) FreeBSD Kernel Interfaces Manual PATM(4)

名称

patmATM インタフェース (ProSum と IDT) に基づく IDT77252 のためのデバイスドライバ

書式

device patm
device utopia
device atm


options NATM
options LIBMBPOOL

解説

patm デバイスドライバは、IDT77252 チップに基づく ATM カードをサポートします。それは、ProSum の ProATM-155 カードと IDT の評価ボードでテストされました。ドライバは、 natm(4) フレームワーク、 netgraph(4) と HARP とインタフェースで接続します。それは、PVC サービスだけを提供します。シグナル処理、 ATMARP、ILMI、および他のより高いレイヤ (層) プロトコルは、 netgraph(4) または HARP を使用して実装されています。

IP のためにカードを設定するには、 natmip(4) を参照してください。

ドライバは、UBR、CBR、VBR と ABR トラフィックをサポートします。サポートされた AAL は、次の通りです: AAL0 (セルペイロード)、AAL5 と生の AAL。訳注: ペーロードは、パケットのデータ本体。ドライバは、RX での VCI/VPI 0/0 の始まり、生の AAL-モードをサポートします。この VC は、他のオープンされた接続によって要求されない (非 0 の GFC フィールドと許容範囲外の VPI/VCI 値でさえ) すべての着信セルを受信します。これは、モニタ目的に使用されるかもしれません。

次の sysctls は、 utopia(4) によって取り扱われるものに加えてドライバによって認識されます:

hw.atm.patm N .istats
内部のドライバの統計値と共に uint32_t 統計値カウンタのリストを返します。
hw.atm.patm N .eeprom
これは、オンボード EEPROM デバイスの内容を含む読み込み専用の変数です。
hw.atm.patm N .lbuf_max
ドライバが割り付ける大きな受信バッファの数の上限が置かれます。これは、 loader(8) (ローダ) 調整変数を通して設定することができる読み込み専用の変数です。
hw.atm.patm N .tx_maxmaps
これは、ドライバが割り付ける送信 DMA マップの上限です。これは、読み込み専用の変数ですが、 loader(8) (ローダ) 調整変数を通して設定することができます。
hw.atm.patm N .debug
(デバッグが有効な場合のみ。)
これらは、デバッグフラグです。あり得るフラグについては、 src/sys/dev/patm/if_patmvar.h を参照してください。これは、 loader(8) (ローダ) 調整変数を通して初期化されます。
hw.atm.patm N .regs
(デバッグが有効な場合のみ。)
カードのレジスタの現在のあ合いを返します。
hw.atm.patm N .tsq
送信状態キューを返します。

ロードされるとき、ドライバは、 loader(8) (ローダ) 調整変数からいくつかの変数を初期化します:

hw.patm N .lbuf_max
これは、対応する sysctl(8) 変数を初期化して、大きい受信バッファ (mbuf クラスタ) の数の上限を定義します。
hw.patm N .tx_maxmaps
これは、対応する sysctl(8) 変数を初期化します。そしてこれは、ドライバが割り付けた送信のための DMA マップの最大数です。
hw.patm N .debug
(デバッグが有効な場合のみ。)
デバッグフラグを初期化します。

ドライバは、カードが 155MBit カードであるとき、メディアオプション sdh, noscrambunassigned ( utopia(4) 参照) をサポートします。 PMC-Sierra S/UNI と IDT77155 PHY チップの両方は、これらのカードのためにサポートされます。 25MBit カードに関しては、IDT77105 がサポートされています。

診断

patm1: <NICStAR (77222/77252) ATM adapter> port 0xc000-0xc0ff mem 0xf8000000-0xf83fffff,0xf4000000-0xf4000fff irq 11 at device 8.0 on pci2 
patm1: IDT77252 155MBit interface; idt77252 Rev. G; IDT77155 PHY 
patm1: 128K x 32 SRAM; 4096 connections

関連項目

natm(4), natmip(4), utopia(4)

謝辞

このドライバの開発を可能にするためにこれらの 2 枚のカードを ProSum から貸してくれた Christian Bucari に感謝します。また、私の質問に答えてくださり感謝します。

作者

Harti Brandt <harti@FreeBSD.org>

警告

クリアされた PTI フィールドの MSB がある AAL0 モードでセルが受信されるなら、カードは、割り込みの発生に失敗します。したがって、受信状態キューが満杯または PTI セットの最後のビットと共にセルが受信されたときのいずれかが発生するかもしれない次の受信割り込みで、セルは、配信されます。

カードは、AAL3/4 をサポートしますが、ドライバは、サポートしません。

このドライバによって使用されたレート (速度) テーブルは、 IDT によって推薦されたテーブル (それらは、とにかく間違っている) ではありません。ドライバのテーブルは、IDT のよりわずかに活動的です。それは、実際のセルレートが指定よりわずかに高くできることを意味します。これは、セルレートが許容されたものより 5% 少なく観測されていたところで IDT テーブルと対照的です。これは、 /usr/src/sys/dev/patm/genrtab で見つけられるこれらのテーブルを発生させ、それらを再生するプログラムを変更することによって変更することができます。

実際のメディアを見つけ出す (私が知る) 方法がないので、 155MBit カードのための報告されたメディアは、常に OC3/MM となります。メディアは、本当は、メーカによって EEPROM でコード化されるべきです。

チップが間隔のためにアイドルのセルを使用して、PHY がこれらのセルをカウントするので、 utopia 統計値中の Tx セルカウンタは、間違っています。これらのセルを切り替えるチップのための設定オプションがあるものの、ドキュメンテーションによると、これは、セル間隔に影響を及ぼすべきではありません、それで、ドライバは、チップにアイドルのセルを発生させます。

July 15, 2003 FreeBSD