SkillAgentSearch skills...

TransceiverTool

Tool for the SFF-8472 (SFP/+/28) and SFF-8636 (QSFP/+/28) Standards. Decode binary to human-readable(!) JSON, encode JSON to binary, pretty print and validate!

Install / Use

/learn @robinchrist/TransceiverTool
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

TransceiverTool

What is this project? (TL;DR version)

This tool is built for the SFF-8472 (SFP/+/28) and SFF-8636 (QSFP/+/28) standards. Those standards are used by pluggable transceivers and cables to provide different types information (starting from manufacturer, over required power, wavelength, maximum reach, etc...) This tool can decode binary to human-readable(!) JSON, encode JSON to binary, validate (e.g. whether reserved bits are set) and pretty-print. It offers a programmatic interface to manipulation through the SFF8472_LowerA0h and SFF8636_Upper00h class (and several helper classes / structs) to make working with those standards easier.

This tool allows creation of every possible programming and is roundtrip-stable. All reserved bytes or things like invalid checksums can be done with it.

Full JSON schemas are provided for the JSON output / input.

Overall, the goal is democratise transceiver programming. Right now your best option is probably using this tool together with REVELPROG programmer and the matching adapter board.

Why this project?

To my knowledege, there is no other open source project that allows easy creation of new programmings / binaries of SFF-8472 and SFF-8636. Because I often reprogram transceivers and don't want to use proprietary (and very limited) tools like the fs.com FS BOX or the flexoptix FLEXBOX, I decided to write my own tool.

License

This project is licensed under the MIT license

Warning

This project was created entirely in my free time. The inconsistency and overall quality of the SFF-8472 and SFF-8636 made me consider cancelling this project so often that I stopped counting at some point. Large parts of this code were written under heavy influence of sleep deprivation and almost deadly amounts of caffeine and/or energy drinks.

I tried to make this code rock-solid and so far haven't encountered any fatal bugs or errors. Fuzzing is on the todo list.

A friend once said

Consider everything in here unstable and evil. Assume everything will eat your cats and dogs.

Example Output

<details> <summary>SFF-8472 (SFP+) Pretty Print (Brocade 57-1000027-01) </summary>
TransceiverTool decode --binary-type 8472-128b --pretty-print --from-file Brocade-57-1000027-01.bin
Type                                                                                 : SFF-8472

Identifier [0]                                                                       : SFP or SFP+ (0x03)

Extended Identifier [1]                                                              : GBIC/SFP function is defined by 2-wire interface ID only (0x04)

Connector Type [2]                                                                   : LC (Lucent Connector) (0x07)

Specification Compliance, 10G Ethernet Compliance Codes [3, 7]                       : Not 10GBASE-ER compliant
Specification Compliance, 10G Ethernet Compliance Codes [3, 6]                       : Not 10GBASE-LRM compliant
Specification Compliance, 10G Ethernet Compliance Codes [3, 5]                       : Not 10GBASE-LR compliant
Specification Compliance, 10G Ethernet Compliance Codes [3, 4]                       : Not 10GBASE-SR compliant

Specification Compliance, Infiniband Compliance Codes [3, 3]                         : Not 1X SX compliant
Specification Compliance, Infiniband Compliance Codes [3, 2]                         : Not 1X LX compliant
Specification Compliance, Infiniband Compliance Codes [3, 1]                         : Not 1X Copper Active compliant
Specification Compliance, Infiniband Compliance Codes [3, 0]                         : Not 1X Copper Passive compliant

Specification Compliance, ESCON Compliance Codes [4, 7]                              : Not ESCON MMF, 1310nm LED compliant
Specification Compliance, ESCON Compliance Codes [4, 6]                              : Not ESCON SMF, 1310nm Laser compliant

Specification Compliance, SONET Compliance Codes [4, 5]                              : Not OC-192, short reach compliant
Specification Compliance, SONET Compliance Codes [4, 4-3]                            : SONET SR compliant or not specified (0b00)
Specification Compliance, SONET Compliance Codes [4, 2]                              : Not OC-48, long reach compliant
Specification Compliance, SONET Compliance Codes [4, 1]                              : Not OC-48, intermediate reach compliant
Specification Compliance, SONET Compliance Codes [4, 0]                              : Not OC-48, short reach compliant
Specification Compliance, SONET Compliance Codes [5, 7]                              : N/A
Specification Compliance, SONET Compliance Codes [5, 6]                              : Not OC-12, single mode, long reach compliant
Specification Compliance, SONET Compliance Codes [5, 5]                              : Not OC-12, single mode, intermediate reach compliant
Specification Compliance, SONET Compliance Codes [5, 4]                              : Not OC-12, short reach compliant
Specification Compliance, SONET Compliance Codes [5, 3]                              : N/A
Specification Compliance, SONET Compliance Codes [5, 2]                              : Not OC-3, single mode, long reach compliant
Specification Compliance, SONET Compliance Codes [5, 1]                              : Not OC-3, single mode, intermediate reach compliant
Specification Compliance, SONET Compliance Codes [5, 0]                              : Not OC-3, short reach compliant

Specification Compliance, Ethernet Compliance Codes [6, 7]                           : Not BASE-PX compliant
Specification Compliance, Ethernet Compliance Codes [6, 6]                           : Not BASE-BX10 compliant
Specification Compliance, Ethernet Compliance Codes [6, 5]                           : Not 100BASE-FX compliant
Specification Compliance, Ethernet Compliance Codes [6, 4]                           : Not 100BASE-LX/LX10 compliant
Specification Compliance, Ethernet Compliance Codes [6, 3]                           : Not 1000BASE-T compliant
Specification Compliance, Ethernet Compliance Codes [6, 2]                           : Not 1000BASE-CX compliant
Specification Compliance, Ethernet Compliance Codes [6, 1]                           : Not 1000BASE-LX compliant
Specification Compliance, Ethernet Compliance Codes [6, 0]                           : Not 1000BASE-SX compliant

Specification Compliance, Fibre Channel Link Length [7, 7]                           : Not very long distance (V) compliant
Specification Compliance, Fibre Channel Link Length [7, 6]                           : Not short distance (S) compliant
Specification Compliance, Fibre Channel Link Length [7, 5]                           : Not intermediate distance (I) compliant
Specification Compliance, Fibre Channel Link Length [7, 4]                           : long distance (L) compliant
Specification Compliance, Fibre Channel Link Length [7, 3]                           : Not medium distance (M) compliant

Specification Compliance, Fibre Channel Technology [7, 2]                            : Not Shortwave laser, linear Rx (SA) compliant
Specification Compliance, Fibre Channel Technology [7, 1]                            : Longwave laser (LC) compliant
Specification Compliance, Fibre Channel Technology [7, 0]                            : Not Electrical inter-enclosure (EL) compliant
Specification Compliance, Fibre Channel Technology [8, 7]                            : Not Electrical intra-enclosure (EL) compliant
Specification Compliance, Fibre Channel Technology [8, 6]                            : Not Shortwave laser w/o OFC (SN) compliant
Specification Compliance, Fibre Channel Technology [8, 5]                            : Not Shortwave laser with OFC (SL) 4 compliant
Specification Compliance, Fibre Channel Technology [8, 4]                            : Not Longwave laser (LL) compliant

Specification Compliance, SFP+ Cable Technology [8, 3]                               : Not Active Cable compliant
Specification Compliance, SFP+ Cable Technology [8, 2]                               : Not Passive Cable compliant
Specification Compliance, SFP+ Cable Technology [8, 1]                               : N/A
Specification Compliance, SFP+ Cable Technology [8, 0]                               : N/A

Specification Compliance, Fibre Channel Transmission Media [9, 7]                    : Not Twin Axial Pair (TW) compliant
Specification Compliance, Fibre Channel Transmission Media [9, 6]                    : Not Twisted Pair (TP) compliant
Specification Compliance, Fibre Channel Transmission Media [9, 5]                    : Not Miniature Coax (MI) compliant
Specification Compliance, Fibre Channel Transmission Media [9, 4]                    : Not Video Coax (TV) compliant
Specification Compliance, Fibre Channel Transmission Media [9, 3]                    : Not Multimode, 62.5um (M6) compliant
Specification Compliance, Fibre Channel Transmission Media [9, 2]                    : Not Multimode, 50um (M5, M5E) compliant
Specification Compliance, Fibre Channel Transmission Media [9, 1]                    : N/A
Specification Compliance, Fibre Channel Transmission Media [9, 0]                    : Single Mode (SM) compliant

Specification Compliance, Fibre Channel Speed [10, 7]                                : Not 1200 MBytes/sec compliant
Specification Compliance, Fibre Channel Speed [10, 6]                                : 800 MBytes/sec compliant
Specification Compliance, Fibre Channel Speed [10, 5]                                : Not 1600 MBytes/sec compliant
Specification Compliance, Fibre Channel Speed [10, 4]                                : 400 MBytes/sec compliant
Specification Compliance, Fibre Channel Speed [10, 3]                                : Not 3200 MBytes/sec compliant
Specification Compliance, Fibre Channel Speed [10, 2]                                : 200 MBytes/sec compliant
Specification Compliance, Fibre Channel Speed [10, 1]                    
View on GitHub
GitHub Stars12
CategoryDevelopment
Updated4mo ago
Forks3

Languages

C++

Security Score

87/100

Audited on Nov 11, 2025

No findings