diff --git a/packages/base/any/onlp/src/sff/module/inc/sff/8436.h b/packages/base/any/onlp/src/sff/module/inc/sff/8436.h index cf389351..6383eddf 100644 --- a/packages/base/any/onlp/src/sff/module/inc/sff/8436.h +++ b/packages/base/any/onlp/src/sff/module/inc/sff/8436.h @@ -257,17 +257,21 @@ _sff8436_qsfp_40g_pre(const uint8_t* idprom) return 0; } + static inline int _sff8436_qsfp_40g_lm4(const uint8_t* idprom) { if(!SFF8436_MODULE_QSFP_PLUS_V2(idprom)) { return 0; } - /* Restrict to Finisar FTL4C3QE1C at this point. */ - if(strncmp("FTL4C3QE1C ", (char*)idprom+168, 16)) { + + if (idprom[130] != SFF8436_CONN_LC) return 0; + if (!SFF8436_MEDIA_NONE(idprom)) return 0; + + if ((idprom[142] != 1) && idprom[143] != 70) { return 0; } - return SFF8436_MEDIA_NONE(idprom); + return 1; } static inline int