कम्प्लायंस कोड: बाइट 3–10, 36 और विस्तारित टेबल
किसी मॉड्यूल को होस्ट यह नहीं जानता कि वह क्या है उसके वेंडर नाम से — वह यह जानता है कंप्लायंस कोड से: बिट फ़ील्ड जो कहते हैं “मैं 10GBASE-LR हूँ” या “मैं एक 1000BASE-T कॉपर SFP हूँ”, साथ ही एक सिंगल एक्सटेंडेड कोड, उन सब चीज़ों के लिए जो बिट फ़ील्ड की जगह ख़त्म होने के बाद ईजाद हुईं। होस्ट इनका इस्तेमाल मॉड्यूल टाइप का नाम रखने, कौन-सी स्पीड ऑफ़र करनी है यह तय करने, FEC और ब्रेकआउट चुनने के लिए करते हैं, और — सख़्त प्लैटफ़ॉर्म पर — ऐसे मॉड्यूल को रिजेक्ट करने के लिए जिसके कोड पोर्ट से मेल नहीं खाते। इन्हें सही रखना मॉड्यूल कोड करने का सबसे ज़रूरी हिस्सा है।
कोडिंग की दो पीढ़ियाँ
| मैकेनिज़्म | कहाँ | कैसे काम करता है |
|---|---|---|
| क्लासिक बिट फ़ील्ड | SFF-8472 बाइट 3–10; SFF-8636 बाइट 131–138 और 164 | हर स्टैंडर्ड के लिए एक बिट; कई सेट हो सकते हैं (dual-rate, multi-protocol) |
| एक्सटेंडेड स्पेसिफ़िकेशन कंप्लायंस | SFF-8472 बाइट 36; SFF-8636 बाइट 192 | SFF-8024 टेबल 4-4 की एक वैल्यू: 25G, 100G, 200G, 400G, MSA PMD |
| एप्लिकेशन | CMIS डिस्क्रिप्टर | होस्ट इंटरफ़ेस ID + मीडिया इंटरफ़ेस ID + लेन काउंट, प्रति मॉड्यूल कई — देखें CMIS |
एक 25G या 100G मॉड्यूल ज़्यादातर क्लासिक बिट खाली छोड़ता है और अपनी पहचान बाइट 36 या 192 में डालता है; एक 10G/1G मॉड्यूल इसका उल्टा करता है। Dual-rate 10G/25G मॉड्यूल दोनों इस्तेमाल करते हैं।
SFF-8472 बाइट 3–10 (SFP फ़ैमिली)
| बाइट | बिट 7 | बिट 6 | बिट 5 | बिट 4 | बिट 3 | बिट 2 | बिट 1 | बिट 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — 10G Ethernet / 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 (n/a) |
| 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 — 10/40G Ethernet | बिट 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 लिंक लंबाई और टेक्नोलॉजी | SFP बाइट 7 जैसे ही बिट अर्थ |
| 136 — FC ट्रांसमीटर टेक्नोलॉजी | SFP बाइट 8 जैसे EL, SN, SL, LL बिट |
| 137 — FC मीडिया | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — FC स्पीड | 100 … 3200 MB/s, एक्सटेंडेड फ़्लैग |
| 164 — एक्सटेंडेड मॉड्यूल | InfiniBand रेट: SDR, DDR, QDR, FDR, EDR |
| 192 — एक्सटेंडेड कंप्लायंस | Table 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) इन्हीं बाइट से निकाली जाती है, अक्सर एक तय क्रम में मिलने वाला पहला सेट बिट। - स्पीड ऑफ़रिंग — होस्ट सिर्फ़ वे रेट सूचीबद्ध करता है जिनका कोड मौजूद है; बाइट 36 = 02h वाला लेकिन बाइट 3 में कोई बिट न रखने वाला 25G मॉड्यूल 10G ऑफ़र नहीं किया जाएगा (स्पीड और रेट)।
- FEC सिलेक्शन — एक्सटेंडेड कोड FEC assumption साथ ले जाते हैं (CA-25G-L/S/N; RS-FEC के साथ या बिना CAUI-4) और कुछ होस्ट इनसे FEC सेट करते हैं (FEC और लिंक ट्रेनिंग)।
- कॉपर बनाम ऑप्टिकल — बाइट 8 बिट 2–3, कनेक्टर 23h और बाइट 147 की कॉपर टेक्नोलॉजी होस्ट को DAC हैंडलिंग पर स्विच कर देती हैं (ऑटो-नेगोशिएशन, लिंक ट्रेनिंग)।
- पॉलिसी — सख़्त प्लैटफ़ॉर्म कोड की तुलना पोर्ट के मोड और अपने कम्पैटिबिलिटी डेटाबेस से करते हैं; मिसमैच होने पर unsupported या speed and type not supported मिलता है, भले ही वेंडर ब्लॉक स्वीकार हो चुका हो (विक्रेता लॉक)।
कोडिंग के नियम
- सिर्फ़ वे बिट सेट करें जिन्हें हार्डवेयर वाक़ई पूरा करता है; SR मॉड्यूल पर 10GBASE-LR घोषित करना “no link” को “link with errors” में बदल देता है।
- पूरी पहचान जानकारी को कंसिस्टेंट रखें: कंप्लायंस ↔ तरंगदैर्ध्य ↔ लंबाई ↔ एन्कोडिंग ↔ नॉमिनल रेट ↔ कनेक्टर ↔ ट्रांसमीटर टेक्नोलॉजी।
- 25G+ के लिए बाइट 36 / 192 भरें और बाइट 12 / 140 को FFh पर सेट करें, साथ ही बाइट 66 / 222 में ×250 Mb/s रेट रखें।
- 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)।