MSA standard for transceivers (SFP, OSFP, QSFP, XFP etc.)

Interesting examples and tutorials about REVELPROG-IS features and device programming
ArT
Posts: 1540
Joined: Wed Mar 25, 2015 8:54 am
Location: Warsaw, Poland
Has thanked: 57 times
Been thanked: 166 times

MSA standard for transceivers (SFP, OSFP, QSFP, XFP etc.)

Postby ArT » Wed Jan 04, 2023 1:08 pm

REVELPROG-IS programmer supports MSA compliant transceivers. MSA (Multi-Source Agreement) is an agreement between multiple manufacturers. It defines standards for form factors, electrical and optical interface for various transceivers. From programming point of view we are interested only with management interface. I'm sharing below direct links to standards, but please check latest speficiations on SNIA organization page: https://www.snia.org/technology-communi ... ifications to keep up to date

If you would like to find information how transceivers is coded, which bytes you should change, how to interpret bytes in memory you need to check it in MSA specification, I selected most popular standards based on transceiver type:

SFP / SFP+ / SFP28
SFF-8472 or CMIS

SFP-DD
SFP-DD MIS or CMIS

QSFP / QSFP+ / QSFP28
SFF-8436 or SFF-8636 or CMIS

QSFP-DD / QSFP-DD800
CMIS

OSFP
CMIS

As a general rule, in SFF higher number means newer standard. Additionaly for newest transceivers with multiple lines manufacturers are using CMIS standard which has been desgined largely after the QSFP so it's quite similar to SFF-8636 - memory map has been changed in order to accomodate more electrical lanes.

How do you know if you have SFP+ in SFF-8472 standard or CMIS standard? Or QSFP+ in SFF-8636 standard or CMIS standard? First solution is to check in manufacturer datasheet. Second solution is to read A0 block on memory and check first byte. Please check SFF-8024 Module Reference Codes page 16.
Transceiver-identification.jpg
Transceiver identification based on SFF-8024 Rev 4.10
Transceiver-identification.jpg (227.37 KiB) Viewed 8173 times

For example, if first byte is 03h - you have SFP/SFP+/SFP28 transceiver in SFF-8472 standard. If first byte is 20h - you have SFP+ in CMIS standard. If first byte is 0D - it's QSFP/QSFP+ in SFF standard. If first byte is 1Eh - it's QSFP+ in CMIS standard. And so on...

Please check also Memory organization tutorial for SFP, QSFP and XFP transceivers - more details how EEPROM and is organized, which bytes you can change, how to programm it using REVELPROG-IS programmer with one of the adapter boards.

Return to “Tutorials and Examples”

Who is online

Users browsing this forum: No registered users and 2 guests