รหัสความสอดคล้อง: ไบต์ 3–10, 36 และตารางส่วนขยาย
โฮสต์ไม่รู้ว่าโมดูล คือ อะไรจากชื่อผู้ผลิต แต่จะรู้ได้จาก รหัสความสอดคล้อง ซึ่งเป็นบิตฟิลด์ที่บอกว่า “ฉันคือ 10GBASE-LR” หรือ “ฉันคือ SFP ทองแดงแบบ 1000BASE-T” บวกกับ รหัสส่วนขยาย เพียงตัวเดียวสำหรับทุกสิ่งที่คิดค้นขึ้นหลังจากบิตฟิลด์หมดที่แล้ว โฮสต์ใช้รหัสเหล่านี้ตั้งชื่อชนิดของโมดูล ตัดสินใจว่าจะเสนอความเร็วใดบ้าง เลือก FEC และเบรกเอาต์ และในแพลตฟอร์มที่เข้มงวดยังใช้ปฏิเสธโมดูลที่มีรหัสไม่ตรงกับพอร์ตด้วย การกำหนดรหัสเหล่านี้ให้ถูกต้องคือส่วนที่สำคัญที่สุดของการเขียนโค้ดโมดูล
การเขียนโค้ดสองยุค
| กลไก | ตำแหน่ง | วิธีทำงาน |
|---|---|---|
| บิตฟิลด์แบบดั้งเดิม | SFF-8472 ไบต์ 3–10; SFF-8636 ไบต์ 131–138 และ 164 | หนึ่งบิตต่อหนึ่งมาตรฐาน อาจตั้งค่าได้หลายบิตพร้อมกัน (สองอัตรา, หลายโพรโทคอล) |
| ความสอดคล้องตามสเปกส่วนขยาย | SFF-8472 ไบต์ 36; SFF-8636 ไบต์ 192 | ค่าหนึ่งค่าจากSFF-8024 ตาราง 4-4: 25G, 100G, 200G, 400G, PMD ของ MSA |
| การใช้งาน | ตัวบ่งชี้ของ CMIS | ID อินเตอร์เฟซโฮสต์ + ID อินเตอร์เฟซสื่อกลาง + จำนวนเลน มีได้หลายรายการต่อโมดูล (ดูCMIS) |
โมดูล 25G หรือ 100G จะปล่อยให้บิตแบบดั้งเดิมส่วนใหญ่ว่างไว้ และใส่ข้อมูลระบุตัวตนลงในไบต์ 36 หรือ 192 แทน ส่วนโมดูล 10G/1G จะทำตรงกันข้าม โมดูลสองอัตรา 10G/25G ใช้ทั้งสองแบบ
SFF-8472 ไบต์ 3–10 (ตระกูล SFP)
| ไบต์ | บิต 7 | บิต 6 | บิต 5 | บิต 4 | บิต 3 | บิต 2 | บิต 1 | บิต 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — Ethernet 10G / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X ทองแดงแอ็กทีฟ | IB 1X ทองแดงพาสซีฟ |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 เลเซอร์ | OC-192 ระยะสั้น | บิตระยะของ SONET 1 | บิตระยะของ SONET 2 | OC-48 ระยะไกล | OC-48 ระยะกลาง | OC-48 ระยะสั้น |
| 5 — SONET | สงวนไว้ | OC-12 SM ระยะไกล | OC-12 SM ระยะกลาง | OC-12 ระยะสั้น | สงวนไว้ | OC-3 SM ระยะไกล | OC-3 SM ระยะกลาง | OC-3 ระยะสั้น |
| 6 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — ความยาวลิงก์/เทคโนโลยีของ FC | ไกลมาก (V) | สั้น (S) | กลาง (I) | ไกล (L) | ปานกลาง (M) | สงวนไว้ | เลเซอร์คลื่นสั้น, Rx เชิงเส้น (SA) | เลเซอร์คลื่นยาว (LC) |
| 8 — เทคโนโลยี/สายเคเบิลของ FC | ไฟฟ้าระหว่างตู้ (EL) | เลเซอร์คลื่นสั้นไม่มี OFC (SN) | เลเซอร์คลื่นสั้นมี OFC (SL) | เลเซอร์คลื่นยาว (LL) | สายเคเบิลแอ็กทีฟ | สายเคเบิลพาสซีฟ | สงวนไว้ | สงวนไว้ |
| 9 — สื่อกลางของ FC | ทวินแอกเซียล (TW) | คู่บิดเกลียว (TP) | โคแอกเชียลจิ๋ว (MI) | โคแอกเชียลวิดีโอ (TV) | มัลติโหมด 62.5 µm (M6) | มัลติโหมด 50 µm (M5/M5E) | สงวนไว้ | ซิงเกิลโหมด (SM) |
| 10 — ความเร็วของ FC | 1200 MB/s | 800 MB/s | 1600 MB/s | 400 MB/s | 3200 MB/s | 200 MB/s | ดูไบต์ 62 | 100 MB/s |
ไบต์ 62 (Fibre Channel speed 2) สานต่อรายการความเร็วสำหรับ 64GFC ขึ้นไป ไบต์ 36 เก็บรหัสส่วนขยาย ไบต์ 12 ระบุอัตราตามพิกัดเป็น ×100 Mb/s (FFh → ไบต์ 66 เป็น ×250 Mb/s) ไบต์ 11 คือการเข้ารหัส ไบต์ 13 คือตัวระบุอัตราสำหรับการเลือกอัตรา
การเขียนโค้ด SFP ทั่วไป
| โมดูล | ไบต์ 3 | ไบต์ 6 | ไบต์ 8 | ไบต์ 36 | ไบต์ 12 | ไบต์ 11 | ความยาวคลื่น |
|---|---|---|---|---|---|---|---|
| 1000BASE-SX | 00h | 01h | 00h | 00h | 0Dh (1.3 Gb/s) | 01h 8B/10B | 850 nm |
| 1000BASE-LX | 00h | 02h | 00h | 00h | 0Dh | 01h | 1310 nm |
| 1000BASE-T ทองแดง | 00h | 08h | 00h | 00h | 0Dh | 01h | 0 (ไม่มี) |
| 10GBASE-SR | 10h | 00h | 00h | 00h | 67h (10.3 Gb/s) | 06h 64B/66B | 850 nm |
| 10GBASE-LR | 20h | 00h | 00h | 00h | 67h | 06h | 1310 nm |
| 10G DAC พาสซีฟ | 00h | 00h | 04h | 00h | 67h | 06h | 0, ไบต์ 60 = ความสอดคล้องของสายเคเบิล |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh (ไบต์ 66 = 67h → 25.75 Gb/s) | 06h | 850 nm |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 nm |
| 25G DAC พาสซีฟ CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| 10G/25G SR สองอัตรา | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 nm |
ไบต์ความยาว 14–19 ต้องสอดคล้องกัน: โมดูล SR ระบุระยะ OM3/OM4 โมดูล LR ระบุเป็นกิโลเมตร ส่วน DAC ระบุเป็นเมตรในไบต์ 18
SFF-8636 ไบต์ 131–138, 164 (ตระกูล QSFP)
| ไบต์ | เนื้อหา |
|---|---|
| 131 — Ethernet 10/40G | บิต 7 ส่วนขยาย (ใช้ไบต์ 192), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 สายเคเบิลแอ็กทีฟ 40G (XLPPI) |
| 132 — SONET | OC-48 ระยะไกล / ระยะกลาง / ระยะสั้น, 40G OTN |
| 133 — SAS/SATA | SAS 6 / 12 / 24 Gb/s |
| 134 — Gigabit Ethernet | บิต 3 1000BASE-T, 2 1000BASE-CX, 1 1000BASE-LX, 0 1000BASE-SX |
| 135 — ความยาวลิงก์/เทคโนโลยีของ FC | ความหมายบิตเหมือนไบต์ 7 ของ SFP |
| 136 — เทคโนโลยีตัวส่งของ FC | บิต EL, SN, SL, LL เหมือนไบต์ 8 ของ SFP |
| 137 — สื่อกลางของ FC | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — ความเร็วของ FC | 100 … 3200 MB/s, แฟล็กส่วนขยาย |
| 164 — โมดูลส่วนขยาย | อัตราของ InfiniBand: SDR, DDR, QDR, FDR, EDR |
| 192 — ความสอดคล้องส่วนขยาย | ค่าตามตาราง 4-4 |
ตัวอย่างทั่วไป: 40GBASE-SR4 → ไบต์ 131 = 04h, ไบต์ 192 = 00h; 100GBASE-SR4 → ไบต์ 131 = 80h (ส่วนขยาย), ไบต์ 192 = 02h; 100G CWDM4 → 80h / 06h; 100GBASE-CR4 DAC → 80h / 0Bh พร้อมคอนเนกเตอร์ 23h
CMIS — การใช้งานแทนบิต
โมดูล CMIS ระบุการใช้งานได้สูงสุด 15 รายการ แต่ละรายการจับคู่อินเตอร์เฟซไฟฟ้าฝั่งโฮสต์กับอินเตอร์เฟซสื่อกลาง (ทั้งคู่เป็นรหัสจากSFF-8024) พร้อมระบุจำนวนเลน โมดูล 400G DR4 อาจประกาศ 400GAUI-8 ↔ 400GBASE-DR4 (8:4) และ 100GAUI-2 ↔ 100GBASE-DR (2:1 สำหรับเบรกเอาต์ 4×100G) โฮสต์เลือกหนึ่งรายการต่อเส้นทางข้อมูล สิ่งที่ไม่ได้ประกาศไว้จะตั้งค่าไม่ได้ รายละเอียดและขั้นตอนการเลือก: CMIS
วิธีที่โฮสต์ใช้รหัสเหล่านี้
- การตั้งชื่อ — สตริงชนิดที่แสดงบน CLI (
10GBASE-LR,QSFP-100G-SR4) มาจากไบต์เหล่านี้ มักเป็นบิตแรกที่ถูกตั้งค่าตามลำดับที่กำหนดไว้ - การเสนอความเร็ว — โฮสต์จะแสดงเฉพาะอัตราที่มีรหัสอยู่จริง โมดูล 25G ที่มีไบต์ 36 = 02h แต่ไม่มีบิตในไบต์ 3 จะไม่ถูกเสนอ 10G ให้ใช้งาน (ความเร็วและอัตรา)
- การเลือก FEC — รหัสส่วนขยายบ่งบอกสมมติฐานเรื่อง FEC (CA-25G-L/S/N; CAUI-4 พร้อมหรือไม่พร้อม RS-FEC) และโฮสต์บางระบบตั้งค่า FEC ตามรหัสเหล่านี้ (FEC และการฝึกลิงก์)
- ทองแดงเทียบกับออปติคัล — ไบต์ 8 บิต 2–3, คอนเนกเตอร์ 23h และเทคโนโลยีทองแดงในไบต์ 147 ทำให้โฮสต์สลับไปจัดการแบบ DAC (การเจรจาอัตโนมัติ, การฝึกลิงก์)
- นโยบาย — แพลตฟอร์มที่เข้มงวดจะเทียบรหัสกับโหมดของพอร์ตและฐานข้อมูลความเข้ากันได้ของตน หากไม่ตรงกันจะได้ผลลัพธ์ unsupported หรือ speed and type not supported แม้ว่าบล็อกผู้ผลิตจะผ่านการยอมรับแล้วก็ตาม (การล็อกผู้ผลิต)
กฎการเขียนโค้ด
- ตั้งเฉพาะบิตที่ฮาร์ดแวร์รองรับจริงเท่านั้น การประกาศ 10GBASE-LR บนโมดูล SR จะเปลี่ยน “ไม่มีลิงก์” ให้กลายเป็น “มีลิงก์แต่มีข้อผิดพลาด”
- รักษาความสอดคล้องของข้อมูลระบุตัวตนทั้งหมด: ความสอดคล้อง ↔ ความยาวคลื่น ↔ ความยาว ↔ การเข้ารหัส ↔ อัตราตามพิกัด ↔ คอนเนกเตอร์ ↔ เทคโนโลยีตัวส่ง
- สำหรับ 25G ขึ้นไป ให้กรอกไบต์ 36 / 192 และตั้งไบต์ 12 / 140 เป็น FFh พร้อมระบุอัตรา ×250 Mb/s ในไบต์ 66 / 222
- สำหรับ DAC ให้เขียนโค้ดบิตเทคโนโลยีสายเคเบิล ความยาวเป็นเมตร คอนเนกเตอร์ 23h และไบต์การลดทอน/ความสอดคล้อง แทนความยาวคลื่น
- คำนวณเช็กซัมใหม่หลังจากนั้น (เช็กซัม)
ใน CodingBox
หน้าจอCheck transceiver ถอดรหัสทุกบิตข้างต้นให้เป็นชื่อที่เข้าใจง่าย และแสดงรายการการใช้งานของ CMIS ส่วนEEPROM editor แก้ไขไบต์รหัสทีละฟิลด์ แสดงสตริงชนิดที่ได้ และแก้ไข CC_BASE กับ CC_EXT ให้เมื่อเขียน
ตารางบิตแบบเต็มในบริบทไบต์ของแต่ละตัว: แผนที่ SFF-8472 A0h (ไบต์ 3–10, 36, 62), แผนที่เพจบนของ SFF-8636 (131–138, 164, 192), แผนที่ XFP (131–138)