Skip to content

Commit 5ee31a3

Browse files
Mohammed Al-Sanabanimeta-codesync[bot]
authored andcommitted
Making isLpoModule open source
Summary: No need to make this facebook specific since we use the Host interface code to determine if LPO (not vendor name / part number) Reviewed By: shiva-menta Differential Revision: D84887156 fbshipit-source-id: 53ceacf6bd8550c0601d12c657c7970e22272268
1 parent 82010c4 commit 5ee31a3

File tree

4 files changed

+34
-14
lines changed

4 files changed

+34
-14
lines changed

cmake/QsfpServiceModule.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ add_library(qsfp_module STATIC
2727
fboss/qsfp_service/module/sff/SffModule.cpp
2828
fboss/qsfp_service/module/sff/Sff8472Module.cpp
2929
fboss/qsfp_service/module/sff/Sff8472FieldInfo.cpp
30-
fboss/qsfp_service/module/oss/CmisModule.cpp
3130
fboss/qsfp_service/module/oss/SffModule.cpp
3231
fboss/qsfp_service/module/cmis/CmisFieldInfo.cpp
3332
fboss/qsfp_service/module/cmis/CmisModule.cpp

fboss/qsfp_service/module/BUCK

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ cpp_library(
1111
"QsfpUtil.cpp",
1212
"cmis/CmisFieldInfo.cpp",
1313
"cmis/CmisModule.cpp",
14-
"facebook/CmisModule.cpp",
1514
"facebook/QsfpModule.cpp",
1615
"facebook/SffModule.cpp",
1716
"sff/Sff8472FieldInfo.cpp",
@@ -37,7 +36,6 @@ cpp_library(
3736
":firmware_upgrader",
3837
"//common/strings/icu:icu_string",
3938
"//common/time:time",
40-
"//configerator/distribution/api:api",
4139
"//fboss/agent:fboss-error",
4240
"//fboss/agent:fboss-types",
4341
"//fboss/agent:switch_config-cpp2-types",

fboss/qsfp_service/module/cmis/CmisModule.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3282,6 +3282,40 @@ bool CmisModule::isTunableOptics() const {
32823282
}
32833283
}
32843284

3285+
bool CmisModule::isLpoModule() const {
3286+
// FACETESTLPO is for testing purposes.
3287+
Vendor vendor = getVendorInfo();
3288+
if (vendor.name().value() == "FACETESTLPO") {
3289+
return true;
3290+
}
3291+
// Expected host/media interface codes for LPO transceivers.
3292+
std::set<std::pair<ActiveCuHostInterfaceCode, SMFMediaInterfaceCode>>
3293+
expectedLpoInterfaces = {
3294+
{ActiveCuHostInterfaceCode::LPO_100G,
3295+
SMFMediaInterfaceCode::FR1_100G},
3296+
{ActiveCuHostInterfaceCode::LPO_400G,
3297+
SMFMediaInterfaceCode::FR4_400G},
3298+
{ActiveCuHostInterfaceCode::LPO_800G,
3299+
SMFMediaInterfaceCode::FR8_800G}};
3300+
3301+
if (moduleCapabilities_.size() == expectedLpoInterfaces.size()) {
3302+
for (const auto& capability : moduleCapabilities_) {
3303+
if (!expectedLpoInterfaces.erase(
3304+
std::make_pair(
3305+
static_cast<ActiveCuHostInterfaceCode>(
3306+
capability.moduleHostInterface),
3307+
static_cast<SMFMediaInterfaceCode>(
3308+
capability.moduleMediaInterface)))) {
3309+
break;
3310+
}
3311+
}
3312+
if (expectedLpoInterfaces.empty()) {
3313+
return true;
3314+
}
3315+
}
3316+
return false;
3317+
}
3318+
32853319
MediaInterfaceCode CmisModule::getModuleMediaInterface() const {
32863320
// Return the MediaInterfaceCode based on the first application
32873321
auto moduleMediaInterface = MediaInterfaceCode::UNKNOWN;

fboss/qsfp_service/module/oss/CmisModule.cpp

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)