ベンダーフィールド:名称、OUI、PN、SN、日付コード
ベンダーブロックは、ホストが show interface transceiver で表示し、互換性ポリシーが照合する対象です。仕様はフィールドとその長さ、符号化方式を厳密に定めており、ホストはパディング、大文字小文字、余分なバイトに対して容赦がありません。このページは、そのルール、仕様ごとのバイト範囲、そして本来まったく問題ないモジュールがゴミとして読み取られてしまうよくある誤りをまとめています。
フィールド一覧
| フィールド | SFF-8472(SFP、A0h) | SFF-8636(QSFP、ページ 00h) | CMIS(ページ 00h) | INF-8077i(XFP) | 形式 |
|---|---|---|---|---|---|
| ベンダー名 | 20–35 | 148–163 | 129–144 | 148–163 | ASCII 16文字 |
| ベンダー OUI | 37–39 | 165–167 | 145–147 | 165–167 | 3 バイト、IEEE 割り当て |
| ベンダー型番 | 40–55 | 168–183 | 148–163 | 168–183 | ASCII 16文字 |
| ベンダーリビジョン | 56–59 | 184–185 | 164–165 | 184–185 | ASCII 4/2/2/2文字 |
| ベンダーシリアル番号 | 68–83 | 196–211 | 166–181 | 196–211 | ASCII 16文字 |
| 日付コード | 84–91 | 212–219 | 182–189 | 212–219 | ASCII 8文字 |
| CLEI コード | — | ページ 02h、バイト 129 のビット 4 が立っている場合 | 190–199 | — | ASCII 10文字 |
| ベンダー固有 | 96–127(A0h)、A2h ユーザー EEPROM 128–247 | 224–255、ページ 02h | 223–255、カスタムページ | 224–255 | 自由 |
バイト単位のマップ:メモリマップ。
符号化のルール
- ASCII のみ、印字可能範囲 20h–7Eh。NUL(00h)不可、FFh 不可、制御文字不可。
- 左詰めにし、フィールド全長までスペース(20h)で埋めます。10文字の型番の後ろには、ゼロ6個ではなくスペース6個が続きます。
- ベンダー名 は、登録された製造元(またはブランド所有者)の名称です — ホストが比較する文字列で、通常は大文字小文字を区別します。
- OUI は、名前フィールドにある企業の24ビット IEEE 組織識別子で、上位バイトから順に書かれます。00-00-00 は未指定を意味します。ホストがこれを確認することは稀ですが、 OUI と名前の不一致は、再コーディングされたモジュールを見分ける手軽な指紋になります。
- リビジョン は自由形式です(
A、01、1.0などがよくあります)。ない場合はスペースです。 - シリアル番号 はベンダーごとに一意であるべきです。多くのベンダーは年/週と通し番号を埋め込んでおり、一部のホストはその構造を使って自社モジュールを識別します。
- 日付コード は
YYMMDDの後にベンダーのロットコード2文字が続きます(ない場合はスペース)。240315= 2024年3月15日。 - CLEI(Common Language Equipment Identifier)は10文字の通信資産コードで、主に通信キャリア向けに販売されるモジュールに存在します。
ホストが照合する対象
| ホストの挙動 | 比較対象 | 典型例 |
|---|---|---|
| 名前 + 型番の照合 | ベンダー名と型番を互換性テーブルと照合 | 大半のエンタープライズスイッチ |
| 型番の接頭辞/ファミリー | 型番の先頭の文字 | 幅広い「対応ファミリー」リストを持つプラットフォーム |
| ベンダー固有の署名 | ベンダー領域にあるハッシュまたはマジック値。SN や他のフィールドから算出 | 厳格な OEM ロック |
| SN パターン | シリアル番号の構造 | 一部の OEM、保証と真正性の確認向け |
| OUI | IEEE 識別子 | 稀;一部の NIC と NOS |
| 何もしない | チェックサムが有効なら何でも受け入れる | オープンなスイッチ、非対応 SFP を許可する大半の NIC |
どのプラットフォームが何を行い、どう対応すべきかは、 ベンダーロックと サードパーティの光モジュールのテーマです。
よくある誤り
| 誤り | ホスト側の症状 |
|---|---|
| スペースの代わりに NUL パディング | 名前が途切れる、または文字化けする、モジュールが非対応と判定される |
| フィールドが1バイト長すぎて次にはみ出す | OUI または型番が壊れる、チェックサム不一致 |
| 参照と大文字小文字が異なる | 互換性テーブルで型番が一致しない |
| 非 ASCII バイト(UTF-8、キリル文字) | クエスチョンマークになる、または拒否される |
| 日付コードの数字位置に文字が入っている | 表示エラー;拒否するホストもある |
| ベンダーブロックは変更したがチェックサムは変更していない | モジュールが無効になる — チェックサムを参照 |
| 名前は変更したがベンダー固有の署名は残したまま | 厳格なプラットフォームでは依然として非対応 |
| 識別情報がコンプライアンスコードや波長と矛盾している | 速度または種別が非対応 — コンプライアンスコードを参照 |
ベンダー固有領域
仕様は、ベンダー領域をあえて未定義のままにしています。製造元はそこに、校正データのバックアップ、生産データ、コントローラーの設定、そして — ロックされたモジュールでは — 認証データを格納します。何も考えずに上書きすると、モジュールを文鎮化させたり、ロックチェックを壊したりしかねません。一致するシリアルを持たない参照モジュールからコピーしても、たいていはチェックに失敗します。ベンダーのレイアウトが分かっていない限り、これらは中身の分からないものとして扱ってください(EEPROM の再コーディング)。
CodingBox では
EEPROM editor は各ベンダーフィールドをテキストとして編集し、正確な長さまでスペースで埋め、非 ASCII の入力を拒否し、書き込み時にチェックサムを再計算します。code database は完全な識別情報を保存するため、動作確認済みのベンダーブロックを1ステップで適用できます。
各マップにおけるベンダーブロック:SFF-8472 A0h 20–91、SFF-8636 上位ページ 148–219、CMIS ページ 00h 129–199、XFP テーブル 01h 148–219。
型番フィールドの背後にあるベンダーごとの文法 — Cisco、Juniper、Arista、Huawei、HPE、Dell、Nvidia、Brocade、MikroTik など:OEM 型番。