टूल्स से DDM पढ़ना: CLI, ethtool, SNMP, OpenConfig
वही A2h बाइट आप तक कई रास्तों से पहुँचते हैं: स्विच का CLI, कोई Linux NIC, SNMP पोलर, स्ट्रीमिंग-टेलीमेट्री पाइपलाइन, या प्रोग्रामर से लिया गया रॉ हेक्स डंप। यह पेज कुकबुक है — कमांड, OID और पाथ, और अगर सामने मौजूद टूल ख़ुद डिकोड न करे तो रॉ डंप को हाथ से डिकोड करने का तरीक़ा।
स्विच और राउटर CLI
| Platform | DDM कमांड | नोट्स |
|---|---|---|
| Cisco IOS / IOS-XE | show interfaces transceiver detail | थ्रेशोल्ड वैल्यू के साथ ही दिखते हैं; पहचान जानकारी के लिए show idprom interface |
| Cisco NX-OS | show interface ethernet1/1 transceiver details | QSFP के लिए प्रति-लेन |
| Cisco IOS-XR | show controllers optics 0/0/0/0 | इसमें अलार्म और लेन टेबल शामिल हैं |
| Juniper Junos | show interfaces diagnostics optics xe-0/0/0 | थ्रेशोल्ड और अलार्म स्टेटस शामिल हैं |
| Arista EOS | show interfaces ethernet 1 transceiver dom | … transceiver detail से थ्रेशोल्ड भी जुड़ जाते हैं |
| Huawei VRP | display transceiver interface XGigabitEthernet0/0/1 verbose | — |
| MikroTik RouterOS | /interface ethernet monitor sfp1 | sfp-temperature, sfp-tx-power, sfp-rx-power, sfp-tx-bias-current |
| Dell OS10 | show interface ethernet 1/1/1 transceiver | — |
| NVIDIA Cumulus / Onyx | l1-show swp1 / show interfaces ethernet 1/1 transceiver | मॉड्यूल की जानकारी के लिए mlxlink -d <dev> -p <port> -m |
| SONiC | show interfaces transceiver eeprom -d Ethernet0 | sfputil show eeprom -d; … presence, … lpmode |
पहचान जानकारी वाले बराबर कमांड और किन बातों पर ध्यान दें: स्विच पर ऑप्टिक्स वेरिफ़ाई करना।
Linux: ethtool
ethtool -m eth0 # डिकोड की गई पहचान जानकारी + DDM (जब ड्राइवर मॉड्यूल EEPROM को सपोर्ट करता है)
ethtool -m eth0 raw on hex on # रॉ डंप: A0h, 0x0000–0x00ff पर; A2h, 0x0100–0x01ff पर (SFP)
ethtool -m eth0 hex on offset 256 length 128 # सिर्फ़ A2h का लोअर पेज
ethtool --show-fec eth0 # FEC मोड
ethtool -S eth0 | grep -i fec # fec_corrected_blocks / fec_uncorrectable_blocks
QSFP/CMIS मॉड्यूल के लिए डंप उसी पेज वाले लेआउट में आता है जो ड्राइवर दिखाता है (लोअर पेज, अपर 00h, फिर जहाँ सपोर्ट हो वहाँ पेज 01h/02h/03h/10h/11h)। ethtool, SFF-8472 और SFF-8636 को पूरी तरह और CMIS को कर्नेल वर्शन के हिसाब से आंशिक रूप से डिकोड करता है।
रॉ A2h डंप को हाथ से डिकोड करना
ethtool -m … raw on hex on डंप में A2h का लोअर पेज ऑफ़सेट 0x0100 पर होता है। लाइव मापे गए मान A2h बाइट 96 से शुरू होते हैं → डंप ऑफ़सेट 0x0160:
0x0160: 1a 80 80 e8 1b 58 0f a0 03 e8 ...
└─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘
तापमान Vcc बायस Tx Rx
| बाइट | रॉ | रूपांतरण | मान |
|---|---|---|---|
| 96–97 तापमान | 1A 80 = 6784 (साइन सहित) | ÷ 256 | 26.5 °C |
| 98–99 Vcc | 80 E8 = 33000 | × 100 µV | 3.300 V |
| 100–101 Tx बायस | 1B 58 = 7000 | × 2 µA | 14.0 mA |
| 102–103 Tx पावर | 0F A0 = 4000 | × 0.1 µW = 400 µW; 10·log10(0.400) | −3.98 dBm |
| 104–105 Rx पावर | 03 E8 = 1000 | × 0.1 µW = 100 µW | −10.0 dBm |
ये रूपांतरण इंटरनल कैलिब्रेशन मानते हैं (A0h बाइट 92 बिट 5); एक्सटर्नल कैलिब्रेशन में पहले A2h 56–91 के कॉन्स्टेंट लागू करें (कैलिब्रेशन)। थ्रेशोल्ड उन्हीं फ़ॉर्मैट में A2h 0–39 पर होते हैं; स्टेटस/कंट्रोल और फ़्लैग 110–117 पर (थ्रेशोल्ड और अलार्म)। QSFP: मॉड्यूल के मापे गए मान बाइट 22–27 पर, लेन के मापे गए मान लोअर पेज के बाइट 34–57 पर; CMIS: लोअर पेज 14–25 और पेज 11h 154–201 (प्रति-लेन डायग्नोस्टिक्स)।
SNMP
स्टैंडर्ड: ENTITY-SENSOR-MIB (RFC 3433)
ज़्यादातर प्लेटफ़ॉर्म हर DDM मान को एक फ़िज़िकल सेंसर के तौर पर दिखाते हैं:
| ऑब्जेक्ट | OID | अर्थ |
|---|---|---|
| entPhySensorType | 1.3.6.1.2.1.99.1.1.1.1 | 4 voltsDC, 5 amperes, 8 celsius, 14 dBm |
| entPhySensorScale | 1.3.6.1.2.1.99.1.1.1.2 | 8 = units, 7 = milli, 6 = micro… |
| entPhySensorPrecision | 1.3.6.1.2.1.99.1.1.1.3 | मान में दशमलव स्थान |
| entPhySensorValue | 1.3.6.1.2.1.99.1.1.1.4 | रीडिंग |
| entPhySensorOperStatus | 1.3.6.1.2.1.99.1.1.1.5 | 1 ok, 2 unavailable, 3 nonoperational |
सेंसर का इंडेक्स, ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn) के ज़रिए किसी पोर्ट से मैप होता है। टाइप 14 (dBm), स्केल 8, प्रिसिज़न 2 और मान −1234 वाला मान −12.34 dBm दर्शाता है।
विक्रेता MIB
| विक्रेता | MIB / उदाहरण ऑब्जेक्ट |
|---|---|
| Cisco | CISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), थ्रेशोल्ड entSensorThresholdTable में |
| Juniper | JUNIPER-DOM-MIB: jnxDomCurrentRxLaserPower (…2636.3.60.1.1.1.1.5, 0.01 dBm), jnxDomCurrentTxLaserBiasCurrent (.6), jnxDomCurrentTxLaserOutputPower (.7), jnxDomCurrentModuleTemperature (.8) |
| Arista, Dell, कई और | सिर्फ़ ENTITY-SENSOR-MIB |
| Huawei | HUAWEI-ENTITY-EXTENT-MIB के ऑप्टिकल ऑब्जेक्ट (Rx/Tx पावर, बायस, तापमान) |
| MikroTik | MIKROTIK-MIB mtxrOpticalTable (Rx/Tx पावर, तापमान, वोल्टेज, बायस) |
ओपन-सोर्स NMS (LibreNMS, Zabbix टेम्पलेट, Observium) इन्हें अपने-आप खोज लेते हैं और ग्राफ़ बना देते हैं; Prometheus उन्हीं OID के साथ snmp_exporter इस्तेमाल करता है।
स्ट्रीमिंग टेलीमेट्री (gNMI / OpenConfig)
openconfig-platform-transceiver, मॉड्यूल को फ़िज़िकल चैनल वाले एक कंपोनेंट के तौर पर मॉडल करता है:
/components/component[name=Ethernet1/1]/transceiver/state/… विक्रेता, पार्ट, सीरियल, फ़ॉर्म फ़ैक्टर
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/input-power/instant
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/output-power/instant
/components/component[name=…]/transceiver/physical-channels/channel[index=0]/state/laser-bias-current/instant
/components/component[name=…]/state/temperature/instant
हर लीफ़ में सैंपलिंग इंटरवल के दौरान instant, avg, min, max होते हैं। SAMPLE मोड में 10–60 s पर सब्सक्राइब करें; gnmic → Prometheus/InfluxDB → Grafana आम पाइपलाइन है। वेंडर के अपने मॉडल (Cisco, Juniper, Arista) यही डेटा अपने पाथ में देते हैं और आमतौर पर FEC काउंटर और अलार्म स्टेटस भी जोड़ते हैं।
Windows और दूसरे होस्ट
Windows पर कोई नेटिव DDM टूल नहीं है; NIC विक्रेता की यूटिलिटी (सर्वर एडेप्टर) कभी-कभी मॉड्यूल डेटा दिखाती हैं। FreeBSD, सपोर्टेड ड्राइवर पर ifconfig <if> -v से SFP पहचान जानकारी और DDM दिखाता है। जो होस्ट मॉड्यूल को पढ़ नहीं सकता, उसके लिए बेंच ही फ़ॉलबैक है।
पोल रेट और शिष्टाचार
- मॉड्यूल के मापे गए मान हर सेकंड कई बार रीफ़्रेश होते हैं; ट्रेंड के लिए हर 1–5 मिनट में पोल करना काफ़ी है और टू-वायर बस पर भी हल्का रहता है।
- कुछ प्लेटफ़ॉर्म सभी मॉड्यूल रीड को एक ही मैनेजमेंट CPU से सीरियलाइज़ करते हैं — सैकड़ों पोर्ट के आक्रामक SNMP वॉक धीमे पड़ सकते हैं या टाइम आउट हो सकते हैं।
- जिस बस को होस्ट पोल कर रहा हो, उस पर कभी दूसरा मास्टर (प्रोग्रामर क्लिप, इन-बैंड टूल) न चलाएँ (टू-वायर इंटरफ़ेस)।
सोर्स की तुलना
CLI, SNMP और टेलीमेट्री — तीनों एक ही बाइट पढ़ते हैं; इनके बीच dB के कुछ दसवें हिस्से का अंतर टाइमिंग की वजह से होता है, ग़लती की वजह से नहीं। एक ही मॉड्यूल की होस्ट रीडिंग और बेंच रीडिंग के बीच अंतर समझने लायक़ है: तापमान, Vcc और कैलिब्रेशन को संभालने का तरीक़ा नंबर बदल देता है (सटीकता और सीमाएँ)।
CodingBox में
CodingBox बेंच का दरवाज़ा है: DDM डिकोड किए गए मापे गए मान और फ़्लैग दिखाता है, और रॉ बाइट सिर्फ़ एक क्लिक दूर EEPROM editor में मिल जाते हैं, और CSV एक्सपोर्ट उन्हीं डैशबोर्ड को डेटा देता है जो SNMP या टेलीमेट्री से चलते हैं — इसलिए मॉड्यूल की इनकमिंग इंस्पेक्शन से लेकर डिकमिशनिंग तक एक ही हिस्ट्री रहती है (मॉनिटरिंग)।