Transceiver programming
EEPROM read/write, coding, passwords, checksums, SFF-8472 / SFF-8636 / CMIS fields
A Python library to create, read and modify the 256-byte A0h page of SFP EEPROM per SFF-8472. It exposes named fields (vendor, part, serial, wavelength, bit rate, encoding, link lengths, diagnostics options), generates images from scratch or from a binary, and validates/recalculates checkssums. It…
A reference post on the memory layout used when programming transceivers: SFP blocks A0h (serial ID/vendor, often write-protected) and A2h (diagnostics, page-select byte 7Fh, page 00h/01h user-writable); QSFP block A0h with page-select 7Fh, page 00h identity write-protected and page 03h user…
A notes repository on hacking SFP/QSFP EEPROM: SFPs present EEPROM at I2C 0x50 and DOM plus vendor/password features at 0x51; locked moddules need a 4-byte password written to 0x51 bytes 0x7b-0x7e. It lists several known unlock passwords and evaluates write methods (off-the-shelf coder limited to…
Users needed to write to password-protected SFP/QSFP/XFP modules from HP, Cisco, Finisar and JDSU. The thread documents the two protection levels: a host/user password protecting the user-writable area (A2h offset 7Bh on SFP, A0h offset 7Bh on QSFP/XFP) and a manufacturer password protecting the…
Small homelab, two second-hand switches and a drawer of optics collected over the years, most of which the hosts refuse because of the vendor code. Recoding has always been the blocker: a proper programmer sits around 369 USD, which is more than I paid for the switches, and the Ubiquiti SFP Wizard…
I do industrial installs, mostly Hirschmann switches in cabinets nobody wants to open twice. On the last couple of projects the optics were the line item that hurt: the switches expect Hirschmann-coded modules, and the original M-SFP parts cost several times an equivalent generic module, with lead…
A QSFP112 400G SR4 module in a ConnectX-7 (MCX755106AC-HEAT) with an MPO-12 Type-B cable showed module state Ready and data path DPActivated, but mlxlink --showmodule reported State = Disable, Supported Cable Speed = 0x00000000, Compliance = Unspecified/Undefined, Power Class 1.5 W (too low for…
A good half of my work is putting one company's optics into another company's switch, so I spend a lot of time asking a module what it thinks it is. My toolbox for that is currently one command deep, and I would like to know what else is worth putting on the bench machine. Linux boxes with SFP+ and…
5votes
4comments
160views
Bench work: re-coding a small batch of SFP+ modules so they carry the vendor string and part number the customer's kit expects. The edit itself is trivial in a hex editor, the write goes through, the read back matches byte for byte what I wrote - and the host still throws the module out. generic…
Installing a new MES2324FB at a site to replace old hardware. The uplink is 1G fiber to an Alcatel 6224, Foxgate modules from the same batch as at neighboring sites. Setup: Eltex MES2324FB, firmware 4.0.4.7, also tried 4.0.6 - no difference 1G SFP Foxgate on both ends of the link far end - Alcatel…
We are a small regional ISP rebuilding the optics budget for next year. Every 10G spare on our shelf is coded for exactly one platform, so the spares pool is roughly three times larger than our failure rate justifies. The idea on the table is to buy re-codable modules and code them ourselves as…
I run a backup storage system in a data center. A pair of DD9900 in HA, network ports on the NDC QLogic. After a reboot or reseating the module, port ethMa stops seeing the transceiver, and it's not a one-off - it's a stable, repeating pattern. Dell DD9900, DD OS 7.2.0.95, HA configuration NDC…
We run a pair of ThinkSystem NE1032 RackSwitch units as top of rack in a small colo cage. The Lenovo-branded optics we inherited only cover half the ports, so the rest got filled with generic SFP+ modules and a couple of short DACs out of the same batch we already use on other vendors' switches…
We are adding capacity to a small FC fabric and bought compatible 16G short-wave SFP+ from an optics supplier instead of paying the switch vendor price. The switch refuses them. Brocade G610, Fabric OS 9.x generic-coded 16G SWL SFP+, correct wavelength and reach according to the label Brocade-coded…
The thread starter documented that 82599-based X520 cards carry an undocumented EEPROM bit (IXGBEDEVICECAPSALLOWANYSFP, lowest bit of the capability word at byte offset 0x58, typically 0xFC locked / 0xFD unlocked) that decides whether non-Intel active SFP+ modules are accepted on ESXi and Windows…
3votes
5comments
143views
We recode a small batch of modules for customer hosts most months, nothing exotic: read the original page, write the vendor string the host wants, put the module in the switch and move on. One module out of the current batch refuses every write while reading back perfectly, and before I bin it I…
4votes
5comments
134views
We hand customer circuits off on MRV OptiSwitch demarcation boxes - mostly OS906, with a few OS904 and OS912 left on older builds. When a ticket comes in about a circuit that is down or flapping, I want two things over SSH before anyone drives out: what module is actually sitting in the port…
4votes
5comments
132views
I do small batches of module recoding for integrators, and until now everything on my bench has been SFP-shaped: read the 256 bytes at A0h with the serial ID in the first half, read A2h for the diagnostics and thresholds, write the identification block, done. A customer has now turned up with 100G…
6votes
6comments
141views
My fibre WAN runs into a Turris Omnia and I moved from the ISP box to an XPON stick to drop one hop. The stick is a 2.5G part, the Omnia cage does 2.5G, and everything still lands at 1G. Turris Omnia, Turris OS 7.0.2 HBS, kernel 5.15.148 Luleey LL-XS2510 XPON SFP, RTL960x based, DFP-34X-2C2 family…
5votes
6comments
174views
Our inventory tooling walks every switch and records vendor, part number and serial for each pluggable straight out of the SONiC CLI. It works everywhere except one batch of QSFP-DD modules, where the identity fields come back mangled and the asset database fills up with junk. Switch: SONiC…
I swapped the ISP ONU for an ODI DFP-34X-2C2 GPON stick in my Turris Omnia so the fibre terminates in the router instead of another box on the shelf. That part worked: the line is registered, traffic flows, no complaints. The problem is the rate. It never goes above 1Gbps, and 2.5G was the whole…
We run a handful of 80 km DWDM spans off EX4200s with third-party optics on both ends, because the vendor-branded DWDM parts were never going to fit the budget. That was fine for years. After the EX boxes were moved to Junos 12.3 the optics still sit in the same ports and the spans still exist, but…
3votes
4comments
170views
Running a CWDM ring at the access layer, Catalyst 3750 at aggregation. I got plain modules with no vendor encoding, case marking TTG965D1, 1470-1610 nm grid. The link comes up, traffic flows, but the switch treats them as SX modules: in both inventory and monitoring it shows SX instead of CWDM, so…
I run a small ISP's network and regularly reflash cheap modules for HP. Usual task: flash the vendor module's image into cheap Chinese 1.25G WDM modules so the switch accepts them without complaint. Donor is a J4859C, target hardware is an HP 2530-24G J9776A. What's on the bench: HP 2530-24G J9776A…
We are bringing up a pair of AS9716-32D as a 400G spine in the lab, on a community SONiC image with the PDDF platform layer. The optics are not the problem, the peer links fine, but everything the switch says about them is wrong. Edgecore AS9716-32D (x8664-acctonas971632d-r0) community SONiC build…
4votes
4comments
150views
I keep a shelf of pulled SFPs at home and I would like to be able to read their EEPROM, repair a module whose checksum got mangled, and occasionally recode one for a switch that is picky about vendor strings. Buying a commercial programmer for a handful of modules a year makes no sense here, so I…
The poster operated old HP/H3C A5800 switches (JC100A, JC103A) with many SFP modules of mixed coding. Modules with H3C in A0h bytes 60h-62h worked but logged This is not a supported transceiver for this platform, and DDM plus serial/date information were unavailable. Copying the full data from a…
7votes
5comments
129views
Small home lab. I flashed a Linksys LGS328C over to OpenWrt SNAPSHOT to get away from the stock web interface. Everything survived the move except one SFP28 port that used to work perfectly well. switch: Linksys LGS328C (Realtek rtl930x), OpenWrt SNAPSHOT module: Dell S28-10G-25G-SR-85C, dual-rate…
I run a provider's network with a mixed fleet of modules, so I regularly have to prep modules for specific switches. I want to finally understand the mechanics of the check instead of guessing at dumps. What I'm working with: Cisco Catalyst 2960X-24PS-L, the pickiest one in the fleet QTECH…
I keep a small pool of shared modules: the nodes are scattered around the city, and I have to recode SFP modules for almost every switch that isn't mine. With gigabit modules the routine has been solid for a long time, but a 10G one just stopped me cold. What's on the bench: a programmer with an…