SFPPの仕様について ====================================== .. contents:: Contents: .. toctree:: :glob: :maxdepth: 1 .. WARNING:: 意訳というか、自分の解釈が相当に入っています SFPPに関する概要 -------------------- SFPP(SFP+)の仕様は :: SFF-8431においてSFPPに関する解説 SFF-8472においてSFFPの2wire serialを用いた管理 にて記載されている。 SFPPはSFFのSFF-8431において標準化が行われている光トランシーバモジュールである。 SFPPは従来のXENPAKやXFPに比べて小型かつ低電力のモジュールであり、 高集積化が進む近年のスイッチなどにおいて必須の技術となっている。 光モジュールは光電変換を行うモジュールではなく、 光レベルの閾値監視や現在の値、また、モジュール自身の温度をホスト側に伝える機能を有している。 SFPPの機能は大きく3つに分けられる。 1. 管理用バス 2. 電気的な主信号 3. 光的な主信号 以下ではこの1のみについて触れる。 1.SFPPの管理用バス ----------------------- SFPPは20本の電気的な接点を持つ。(Page.5) このうち、4番ピン(SDA)と5番ピン(SCL)は **2-wire Serial Interface** と呼ばれ、管理用に用いられている。 *I2C* バスとして一般的に知られているプロトコルである。 SDA, SCLはそれぞれ3.3Vのデジタル信号が流れ、SCLが信号のクロック。SDAが同期したシリアルデータを伝送する。電圧などの詳細は表21を参照のこと。 シリアルのクロックは最大400kHzが利用可能であり、SFPP側は「スレーブモード」としてのみ動作する。つまり、マスタ側であるラインカード側に対してSFPPから自発的にデータの送出を実施することはなく、全てマスタであるラインカードからの要求に基づいて処理を実行する。 つまり、ネットワーク装置でWARNなどの閾値設定が可能であっても、その警報はSFPから自発的に送られるのではなく、あくまでマスタがそれらの情報を取得したのちに警報をマスタが生成しているだけである。 シリアルバスのアクセスには2つのアドレスが用いられる。 1010000x (A0h) および 1010001x (A2h) である。詳細は後述する。 通常、I2Cバスというのは、1つのバスに対して複数のスレーブが接続され、各装置をアドレスで識別する。しかしながら、SFPPでは、各NW装置側の光インタフェースの口は、それぞれの独立したバスをもち、アドレスによって、SFPPにアクセスする。 これはなぜかというと、I2Cはその仕様上、あるアドレスは、256バイトの情報しか格納できない。それでは足りないため、2つのアドレス、すなわち、512バイトを格納できるようにしている。 :: SCL: 信号が存在しない場合、Low信号を送出 SDA: 送受信に用いられる。オープンドレインかオープンコレクタの状態である。 Clock and Data Transitions: ACK ^^^^^^^^ 8ビットのワードが送られると、送信側はSDAを(1ビット時間)解放する。 この間に、受信側はSDAを0にプルすることでACKを示すことができる。 ラインカード側からのアクセスに対してはトランシーバ側からACKが返され、 トランシーバ側からのアクセスに関してはラインカード側がACKを返す。 尚、ラインカード側からの最後の読み込みであった場合、 ラインカードはデータに対してACKではなくSTOPシーケンスを送る。 NACK: ^^^^^^^^^ 優先度の高いタスク処理などでデータを受信できなかった場合、 SDAラインがHighである状態を解放する(Lowに落とす)。 ACKのクロックパルス(1bit time)の間にSDAラインがHighである状態から解放された場合、 ホスト側はNACKされたと解釈し、データ送信の停止(STOP)あるいは、 サイド、STARTデータを送りデータの送信を再試行する。 さらなる送信の詳細(ビット列)に関してはPage44以降を参照のこと。 管理用の通信について ----------------------- 概要 ------ SFF-8472では *Diagnostic Monitoring Interface for Optical Transceivers* という表題で光トランシーバとの管理通信について述べられている。 この仕様はSFPPだけに限定されておらず、SFP, XENPAK, XFPでも同様の プロトコルが用いられている。 光トランシーバはにA0hとA2hのアドレスを用いてアクセスされる。 それぞれ、256バイトの情報を返す。 Page8で示されている通り、A0hのアドレス空間には 光トランシーバのS/N等とベンダ固有の情報が含まれる。 A2hには光レベルの閾値情報などが含まれている。 また、120Bytesのホスト側か書き込めるメモリ空間も用意されている。 A0hアドレス空間 ------------------ ======== ========== =============== Address size(byte) Field 0 1 ID 1 1 ID ext 3-10 8 Transceiver 11 1 Encoding 12 1 Nominial 20-35 16 Vendor Name 40-55 16 Part Number 56-59 4 パーツのRev 60-61 2 Wavelength 68-83 16 S/N 84-91 8 製造日 95 1 CheckSum 96-127 32 (ベンダ用EEPROM) ======== ========== =============== A2hアドレス空間 ------------------ ======== ========== =============== Address size(byte) Field 0-55 xx 閾値 56-95 xx - 96-119 xx リアルタイム値 120-127 xx ベンダ予約 128-247 xx (ベンダ用EEPROM) 248-255 xx ベンダ予約 ======== ========== =============== ID/IDExt ----------- トランシーバの種別を記載している。0byte目のコードである。 :: 01h: GBIC 03h: SFPかSFPP ID ExtはGBICの種別を示す。ここでは割愛する。 Transceiver : トランシーバの識別 --------------------------------- トランシーバの判別についてはPage17のTable3.5bを参照すること。 AddressA0hの3バイト目から10バイト目のビットの立ち方で インタフェースは判別される。 通常の1G/10Gインタフェースにおいては、 3-6byte目の任意のビットが立つことでインタフェースを識別している。例えば、 :: 3byte目の5bit目が立っていれば10G-LR 3byte目の3bit目が立っていれば1G-SX といったようにである。 BR nominal ------------------ Rate Identifier --------------------- Length: :: 14byte: SMのみ 伝搬距離(/km) 15byte: SMのみ 伝搬距離(/100m) 16byte: OM2のみ 伝搬距離(/10m) 17byte: OM1のみ 伝搬距離(/10m) 18byte: OM4のみ 伝搬距離(/10m) 19byte: OM3のみ 伝搬距離(/10m) Vendorフィールド ----------------------