होस्ट क्या करता है: डिस्कवरी, वैलिडेशन, ब्रिंग-अप
स्पेसिफ़िकेशन मॉड्यूल के पक्ष का वर्णन करते हैं — पिन, मेमोरी, स्टेट। यह पेज होस्ट के पक्ष का वर्णन करता है: वह सीक्वेंस जो एक स्विच, राउटर या NIC मॉड्यूल डालने के पल से लेकर ट्रैफ़िक बहने तक चलाता है, हर स्टेप में इस्तेमाल होने वाले पिन, बाइट और टाइमिंग के साथ। इसे जानना “पोर्ट कहता है unsupported” को “होस्ट चरण 4 पर रुक गया” में बदल देता है, और यह बताता है कि बेंच पर बिल्कुल सही दिखने वाला मॉड्यूल पोर्ट में फिर भी क्यों फ़ेल हो सकता है।
फ़ॉर्म फ़ैक्टर के हिसाब से लो-स्पीड सिग्नल
| फ़ॉर्म फ़ैक्टर | प्रेज़ेंस | रीसेट / पावर | इंटरप्ट / फ़ॉल्ट | अन्य |
|---|---|---|---|---|
| SFP / SFP+ / SFP28 | MOD_ABS (लो = मौजूद) | — (TX_DISABLE लेज़र को गेट करता है) | TX_FAULT, RX_LOS | RS0, RS1 रेट सिलेक्ट |
| XFP | Mod_ABS | P_Down/RST | इंटरप्ट, Mod_NR (तैयार नहीं), RX_LOS | TX_DIS, Mod_DeSel |
| QSFP+ / QSFP28 | ModPrsL | ResetL, LPMode | IntL | ModSelL |
| QSFP-DD | ModPrsL | ResetL, LPMode | IntL | ModSelL |
| OSFP | PRSn | RSTn, LPWn | INT | — (कोई सिलेक्ट पिन नहीं, प्रति पोर्ट एक बस) |
| SFP-DD | SFP जैसा मॉड्यूल-अनुपस्थित | लो-पावर रिक्वेस्ट | इंटरप्ट | SFP जैसा रेट सिलेक्ट |
हर फ़ैमिली के पिन फ़ंक्शन और पिनआउट: SFP हार्डवेयर, QSFP हार्डवेयर, XFP।
सीक्वेंस
| # | स्टेप | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS | फ़ेल्योर कैसा दिखता है |
|---|---|---|---|---|---|
| 1 | डिटेक्ट | MOD_ABS लो होता है; डीबाउंस | ModPrsL लो | ModPrsL / PRSn लो | पोर्ट खाली रहता है; मॉड्यूल “not detected” |
| 2 | पावर और वेट | 3.3 V हमेशा ऑन रहता है; t_init 300 ms का इंतज़ार | LPMode हाई के साथ पावर ऑन (सिर्फ़ क्लास 1); t_init 2 s का इंतज़ार या Data_Not_Ready पोल करें | वही; मॉड्यूल स्टेट के MgmtInit छोड़ने का इंतज़ार (≤ 2 s) | रीड FFh / 00h लौटाती हैं; पहचान जानकारी ख़ाली |
| 3 | आइडेंटिफ़ाई | A0h 0–95 पढ़ें; बाइट 0 = 03h SFF-8472 पार्सर चुनता है | 0–127 और अपर 00h पढ़ें; बाइट 0 = 0Dh/11h, बाइट 1 रिविज़न | लोअर पेज और अपर 00h पढ़ें; बाइट 0 = 18h/19h…, बाइट 1 CMIS वर्शन | unknown module type |
| 4 | वैलिडेट | CC_BASE, CC_EXT; आइडेंटिफ़ायर/कनेक्टर/एन्कोडिंग कंसिस्टेंसी | CC_BASE, CC_EXT | पेज 00h चेकसम | invalid EEPROM, checksum error — चेकसम |
| 5 | डिकोड टाइप | कंप्लायंस बाइट 3–10, 36; रेट बाइट 12/66; लंबाई; तरंगदैर्ध्य | बाइट 131–138, 192; 140/222 | मीडिया टाइप 85, एप्लिकेशन डिस्क्रिप्टर | speed and type not supported — कंप्लायंस कोड |
| 6 | पॉलिसी | वेंडर नाम/PN (और शायद सिग्नेचर) की कम्पैटिबिलिटी टेबल से तुलना | वही | वही | unsupported transceiver, errdisable — विक्रेता लॉक |
| 7 | पावर क्लास | बाइट 64 लेवल बिट बनाम पोर्ट बजट | बाइट 129 क्लास; लो पावर रिलीज़ करने / क्लास 5–8 एनेबल करने के लिए बाइट 93 लिखें | बाइट 200 क्लास बनाम पोर्ट; LPMode डीअसर्ट करें या LowPwrRequestSW क्लियर करें → मॉड्यूल PwrUp → Ready | लो पावर में रुका रहता है, power exceeds — पावर और थर्मल |
| 8 | कॉन्फ़िगर | RS0/RS1 या सॉफ़्ट रेट सिलेक्ट; होस्ट-साइड स्पीड, FEC, SGMII/1000BASE-X | CDR on/off (98), रेट सिलेक्ट (87–88), होस्ट पर ब्रेकआउट लेन | staged control set में AppSel/DataPathID चुनें → ApplyDPInit → डेटा पाथ Init → Initialized | LOL, FEC mismatch, ब्रेकआउट रिजेक्ट — स्पीड और रेट |
| 9 | Tx एनेबल करें | TX_DISABLE पिन लो या सॉफ़्ट बिट क्लियर (A2h 110.6) | बाइट 86 = 00h | पेज 10h बाइट 130 = 00h → DPTxTurnOn → DPActivated | फ़ार एंड को −40 dBm दिखता है — नो-लिंक चेकलिस्ट |
| 10 | लिंक | PHY/MAC को सिग्नल दिखता है; DAC पर AN/लिंक ट्रेनिंग | प्रति लेन वही | प्रति डेटा पाथ वही | अच्छे लेवल के साथ लिंक डाउन |
| 11 | मॉनिटर | हर कुछ सेकंड में A2h मॉनिटर और फ़्लैग पोल करें; TX_FAULT / RX_LOS पिन | IntL → फ़्लैग 3–21 पढ़ें; मॉनिटर पोल करें | IntL → मॉड्यूल फ़्लैग + पेज 11h लेन फ़्लैग; VDM | अलार्म, फ़्लैप — DDM लेवल, लिंक फ़्लैपिंग |
| 12 | रिमूव | MOD_ABS हाई → टियर डाउन | ModPrsL हाई | ModPrsL हाई | डीबाउंस मिस होने पर स्टेल स्टेट |
स्टेप 3–6 QSFP और CMIS मॉड्यूल के लिए लो पावर में होते हैं: होस्ट ऑप्टिक्स पर पावर ख़र्च करने से पहले वैलिडेट करता है। यही वजह है कि लॉक्ड या ग़लत-कोडेड मॉड्यूल कभी अपना लेज़र नहीं जलाता, और यही वजह है कि इलेक्ट्रिकली ठीक मॉड्यूल पर भी फ़ार एंड −40 dBm पढ़ता है।
वे टाइमिंग जिनका होस्ट इंतज़ार करता है
| वेट | SFP | QSFP | CMIS |
|---|---|---|---|
| इंसर्शन के बाद मैनेजमेंट रेडी | 300 ms | 2 s | ≤ 2 s (MgmtInit), फिर स्टेट LowPwr |
| लो पावर रिलीज़ करने के बाद | — | Data_Not_Ready क्लियर होने तक | मॉड्यूल स्टेट Ready होने तक (अधिकतम अवधि पेज 01h में एडवर्टाइज़्ड) |
| डेटा पाथ इनिट | — | — | प्रति स्टेप एडवर्टाइज़्ड (निबल कोड: < 1 ms … < 50 min) |
| Tx एनेबल से लाइट तक | t_on ≤ 1 ms | ton_txdis 100 ms / toff 400 ms | DPTxTurnOn अवधि एडवर्टाइज़्ड |
| फ़्लैग से इंटरप्ट तक | — | ton_IntL 200 ms | हार्डवेयर स्पेक के हिसाब से |
बस-लेवल टाइमिंग (t_WR, क्लॉक स्ट्रेच): टू-वायर इंटरफ़ेस।
पॉलिसी के वे बिंदु जहाँ होस्ट अलग-अलग होते हैं
- व्हाइटलिस्ट सख़्ती — “vendor name only” से लेकर साइन्ड वेंडर-स्पेसिफ़िक ब्लॉक तक।
- रिजेक्शन पर क्या होता है — पोर्ट डिसेबल, लेज़र ऑफ़, या लॉग एंट्री के साथ लिंक की इजाज़त (थर्ड-पार्टी ऑप्टिक्स)।
- CMIS डेप्थ — पूरा एप्लिकेशन/डेटा-पाथ कंट्रोल बनाम “release LPMode and hope” (CMIS की समस्याएँ)।
- FEC और स्पीड डिफ़ॉल्ट — कंप्लायंस कोड से निकाले जाते हैं या स्टैटिकली कॉन्फ़िगर किए जाते हैं।
- DDM पोलिंग — इंटरवल, थ्रेशोल्ड पोर्ट शटडाउन ट्रिगर करते हैं या नहीं, एक्सटर्नल कैलिब्रेशन लागू होता है या नहीं (कैलिब्रेशन)।
होस्ट कहाँ रुका यह देखने के लिए प्रति-वेंडर CLI: स्विच पर ऑप्टिक्स वेरिफ़ाई करना।
एक प्रोग्रामर होस्ट से कैसे अलग है
CodingBox जैसा एक प्रोग्रामर स्टेप 1–5 और 11 चलाता है लेकिन कोई पॉलिसी नहीं: यह मॉड्यूल जो कुछ भी एक्सपोज़ करता है वह सब पढ़ता है, वेंडर एरिया और पासवर्ड बाइट सहित, CMIS मॉड्यूल को लो पावर में रखता है जब तक अलग से न कहा जाए, और लेज़र कभी ख़ुद से एनेबल नहीं करता। यही वजह है कि बेंच पर सेहतमंद दिखने वाला मॉड्यूल पोर्ट में फिर भी फ़ेल हो सकता है — बेंच में स्टेप 6 होता ही नहीं।
CodingBox में
Check transceiver स्टेप 3–5 का नतीजा वैसे ही दिखाता है जैसे होस्ट देखता — टाइप, रेट, चेकसम, पावर क्लास — और मॉड्यूल के पोर्ट तक पहुँचने से पहले इनकंसिस्टेंसी फ़्लैग करता है; DDM लाइव मॉनिटर और फ़्लैग के साथ स्टेप 11 कवर करता है।
स्टेप 6 (पॉलिसी) के पीछे का हार्डवेयर और स्टेप 8 के पीछे पोर्ट-ग्रुप की सीमाएँ: स्विच के अंदर, हर NOS मॉड्यूल को कैसे वैलिडेट करता है।