CodingBox दस्तावेज़

टूल्स से DDM पढ़ना: CLI, ethtool, SNMP, OpenConfig

वही A2h बाइट आप तक कई रास्तों से पहुँचते हैं: स्विच का CLI, कोई Linux NIC, SNMP पोलर, स्ट्रीमिंग-टेलीमेट्री पाइपलाइन, या प्रोग्रामर से लिया गया रॉ हेक्स डंप। यह पेज कुकबुक है — कमांड, OID और पाथ, और अगर सामने मौजूद टूल ख़ुद डिकोड न करे तो रॉ डंप को हाथ से डिकोड करने का तरीक़ा।

स्विच और राउटर CLI

PlatformDDM कमांडनोट्स
Cisco IOS / IOS-XEshow interfaces transceiver detailथ्रेशोल्ड वैल्यू के साथ ही दिखते हैं; पहचान जानकारी के लिए show idprom interface
Cisco NX-OSshow interface ethernet1/1 transceiver detailsQSFP के लिए प्रति-लेन
Cisco IOS-XRshow controllers optics 0/0/0/0इसमें अलार्म और लेन टेबल शामिल हैं
Juniper Junosshow interfaces diagnostics optics xe-0/0/0थ्रेशोल्ड और अलार्म स्टेटस शामिल हैं
Arista EOSshow interfaces ethernet 1 transceiver dom… transceiver detail से थ्रेशोल्ड भी जुड़ जाते हैं
Huawei VRPdisplay transceiver interface XGigabitEthernet0/0/1 verbose
MikroTik RouterOS/interface ethernet monitor sfp1sfp-temperature, sfp-tx-power, sfp-rx-power, sfp-tx-bias-current
Dell OS10show interface ethernet 1/1/1 transceiver
NVIDIA Cumulus / Onyxl1-show swp1 / show interfaces ethernet 1/1 transceiverमॉड्यूल की जानकारी के लिए mlxlink -d <dev> -p <port> -m
SONiCshow interfaces transceiver eeprom -d Ethernet0sfputil 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 (साइन सहित)÷ 25626.5 °C
98–99 Vcc80 E8 = 33000× 100 µV3.300 V
100–101 Tx बायस1B 58 = 7000× 2 µA14.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अर्थ
entPhySensorType1.3.6.1.2.1.99.1.1.1.14 voltsDC, 5 amperes, 8 celsius, 14 dBm
entPhySensorScale1.3.6.1.2.1.99.1.1.1.28 = units, 7 = milli, 6 = micro…
entPhySensorPrecision1.3.6.1.2.1.99.1.1.1.3मान में दशमलव स्थान
entPhySensorValue1.3.6.1.2.1.99.1.1.1.4रीडिंग
entPhySensorOperStatus1.3.6.1.2.1.99.1.1.1.51 ok, 2 unavailable, 3 nonoperational

सेंसर का इंडेक्स, ENTITY-MIB (entPhysicalDescr, entPhysicalContainedIn) के ज़रिए किसी पोर्ट से मैप होता है। टाइप 14 (dBm), स्केल 8, प्रिसिज़न 2 और मान −1234 वाला मान −12.34 dBm दर्शाता है।

विक्रेता MIB

विक्रेताMIB / उदाहरण ऑब्जेक्ट
CiscoCISCO-ENTITY-SENSOR-MIB entSensorValue (1.3.6.1.4.1.9.9.91.1.1.1.1.4), थ्रेशोल्ड entSensorThresholdTable में
JuniperJUNIPER-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
HuaweiHUAWEI-ENTITY-EXTENT-MIB के ऑप्टिकल ऑब्जेक्ट (Rx/Tx पावर, बायस, तापमान)
MikroTikMIKROTIK-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 या टेलीमेट्री से चलते हैं — इसलिए मॉड्यूल की इनकमिंग इंस्पेक्शन से लेकर डिकमिशनिंग तक एक ही हिस्ट्री रहती है (मॉनिटरिंग)।


अगर आपको इस सामग्री में कोई अशुद्धि या त्रुटि दिखे, तो संबंधित अंश चुनें और Ctrl+Enter दबाकर