Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cmake/AgentHwSwitchAsics.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ add_library(switch_asics
fboss/agent/hw/switch_asics/ChenabAsic.cpp
fboss/agent/hw/switch_asics/BroadcomXgsAsic.cpp
fboss/agent/hw/switch_asics/G202xAsic.cpp
fboss/agent/hw/switch_asics/Q4DAsic.cpp
)

target_link_libraries(switch_asics
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/ApplyThriftConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1175,6 +1175,7 @@ void ThriftConfigApplier::processUpdatedDsfNodes() {
asicCore = 1;
break;
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
if (isDualStage3Q2QMode()) {
asicCore = 447;
} else {
Expand Down
8 changes: 8 additions & 0 deletions fboss/agent/AsicUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include "fboss/agent/AsicUtils.h"
#include "fboss/agent/hw/switch_asics/Jericho2Asic.h"
#include "fboss/agent/hw/switch_asics/Jericho3Asic.h"
#include "fboss/agent/hw/switch_asics/Q4DAsic.h"
#include "fboss/agent/hw/switch_asics/Ramon3Asic.h"
#include "fboss/agent/hw/switch_asics/RamonAsic.h"

Expand Down Expand Up @@ -39,6 +40,11 @@ const HwAsic& getHwAsicForAsicType(const cfg::AsicType& asicType) {
static Jericho3Asic jericho3Asic{switchId, switchInfo};
return jericho3Asic;
}
case cfg::AsicType::ASIC_TYPE_Q4D: {
switchInfo.switchType() = cfg::SwitchType::VOQ;
static Q4DAsic q4dAsic{switchId, switchInfo};
return q4dAsic;
}
case cfg::AsicType::ASIC_TYPE_RAMON: {
switchInfo.switchType() = cfg::SwitchType::FABRIC;
static RamonAsic ramonAsic{switchId, switchInfo};
Expand Down Expand Up @@ -82,6 +88,8 @@ uint32_t getFabricPortsPerVirtualDevice(const cfg::AsicType asicType) {
return 192;
case cfg::AsicType::ASIC_TYPE_JERICHO3:
return 160;
case cfg::AsicType::ASIC_TYPE_Q4D:
return 160;
case cfg::AsicType::ASIC_TYPE_RAMON3:
return 256;
case cfg::AsicType::ASIC_TYPE_FAKE:
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/PortUpdateHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ void PortUpdateHandler::computeFabricOverdrainPct(const StateDelta& delta) {
case cfg::AsicType::ASIC_TYPE_JERICHO2:
return 1.12;
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
return 1.06;
case cfg::AsicType::ASIC_TYPE_MOCK:
case cfg::AsicType::ASIC_TYPE_FAKE:
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/bcm/BcmFieldProcessorUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -543,6 +543,7 @@ bool needsExtraFPQsetQualifiers(cfg::AsicType asicType) {
case cfg::AsicType::ASIC_TYPE_SANDIA_PHY:
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
case cfg::AsicType::ASIC_TYPE_RAMON:
case cfg::AsicType::ASIC_TYPE_RAMON3:
case cfg::AsicType::ASIC_TYPE_G202X:
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/bcm/BcmSwitch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4222,6 +4222,7 @@ void BcmSwitch::disableHotSwap() const {
case cfg::AsicType::ASIC_TYPE_SANDIA_PHY:
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
case cfg::AsicType::ASIC_TYPE_RAMON:
case cfg::AsicType::ASIC_TYPE_RAMON3:
case cfg::AsicType::ASIC_TYPE_G202X:
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/bcm/tests/HwTestTamUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ void triggerParityError(HwSwitchEnsemble* ensemble) {
case cfg::AsicType::ASIC_TYPE_SANDIA_PHY:
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
case cfg::AsicType::ASIC_TYPE_RAMON:
case cfg::AsicType::ASIC_TYPE_RAMON3:
case cfg::AsicType::ASIC_TYPE_EBRO:
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/bcm/tests/HwTestTamUtilsThriftHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ void HwTestThriftHandler::triggerParityError() {
case cfg::AsicType::ASIC_TYPE_SANDIA_PHY:
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
case cfg::AsicType::ASIC_TYPE_RAMON:
case cfg::AsicType::ASIC_TYPE_RAMON3:
case cfg::AsicType::ASIC_TYPE_EBRO:
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/sai/hw_test/HwTestTamUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ void triggerParityError(HwSwitchEnsemble* ensemble) {
triggerBcmJericho2ParityError(ensemble);
break;
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
triggerBcmJericho3ParityError(ensemble);
break;
case cfg::AsicType::ASIC_TYPE_CHENAB:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ void HwTestThriftHandler::triggerParityError() {
triggerBcmJericho2ParityError(hwSwitch_);
break;
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
triggerBcmJericho3ParityError(hwSwitch_);
break;
case cfg::AsicType::ASIC_TYPE_CHENAB:
Expand Down
5 changes: 3 additions & 2 deletions fboss/agent/hw/sai/switch/SaiAclTableManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1682,8 +1682,9 @@ std::set<cfg::AclTableQualifier> SaiAclTableManager::getSupportedQualifierSet(
platform_->getAsic()->getAsicType() == cfg::AsicType::ASIC_TYPE_TRIDENT2;
bool isJericho2 =
platform_->getAsic()->getAsicType() == cfg::AsicType::ASIC_TYPE_JERICHO2;
bool isJericho3 =
platform_->getAsic()->getAsicType() == cfg::AsicType::ASIC_TYPE_JERICHO3;
bool isJericho3 = platform_->getAsic()->getAsicType() ==
cfg::AsicType::ASIC_TYPE_JERICHO3 ||
platform_->getAsic()->getAsicType() == cfg::AsicType::ASIC_TYPE_Q4D;
bool isTomahawk5 =
platform_->getAsic()->getAsicType() == cfg::AsicType::ASIC_TYPE_TOMAHAWK5;
bool isChenab =
Expand Down
2 changes: 2 additions & 0 deletions fboss/agent/hw/sai/switch/SaiBufferManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ void assertMaxBufferPoolSize(const SaiPlatform* platform) {
break;
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
case cfg::AsicType::ASIC_TYPE_TRIDENT2:
CHECK_EQ(maxEgressPoolSize, availableBuffer);
break;
Expand Down Expand Up @@ -201,6 +202,7 @@ uint64_t SaiBufferManager::getMaxEgressPoolBytes(const SaiPlatform* platform) {
}
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
/*
* XXX: TODO: Need to check if there is a way to compute the
* buffers available for use in Jericho2 without using the
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/sai/switch/SaiPortManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,7 @@ int getWorstCaseAssumedOpticsDelayNS(
case cfg::AsicType::ASIC_TYPE_G202X:
break;
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
if (portType == cfg::PortType::FABRIC_PORT) {
return 110;
} else {
Expand Down
1 change: 1 addition & 0 deletions fboss/agent/hw/sai/switch/SaiVirtualRouterManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ SaiVirtualRouterManager::createMplsRouterInterface(VirtualRouterSaiId vrId) {
case cfg::AsicType::ASIC_TYPE_SANDIA_PHY:
case cfg::AsicType::ASIC_TYPE_JERICHO2:
case cfg::AsicType::ASIC_TYPE_JERICHO3:
case cfg::AsicType::ASIC_TYPE_Q4D:
case cfg::AsicType::ASIC_TYPE_RAMON:
case cfg::AsicType::ASIC_TYPE_RAMON3:
case cfg::AsicType::ASIC_TYPE_CHENAB:
Expand Down
3 changes: 3 additions & 0 deletions fboss/agent/hw/switch_asics/HwAsic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "fboss/agent/hw/switch_asics/Jericho2Asic.h"
#include "fboss/agent/hw/switch_asics/Jericho3Asic.h"
#include "fboss/agent/hw/switch_asics/MockAsic.h"
#include "fboss/agent/hw/switch_asics/Q4DAsic.h"
#include "fboss/agent/hw/switch_asics/Ramon3Asic.h"
#include "fboss/agent/hw/switch_asics/RamonAsic.h"
#include "fboss/agent/hw/switch_asics/Tomahawk3Asic.h"
Expand Down Expand Up @@ -120,6 +121,8 @@ std::unique_ptr<HwAsic> HwAsic::makeAsic(
return std::make_unique<Jericho2Asic>(switchId, switchInfo, sdkVersion);
case cfg::AsicType::ASIC_TYPE_JERICHO3:
return std::make_unique<Jericho3Asic>(switchId, switchInfo, sdkVersion);
case cfg::AsicType::ASIC_TYPE_Q4D:
return std::make_unique<Q4DAsic>(switchId, switchInfo, sdkVersion);
case cfg::AsicType::ASIC_TYPE_RAMON:
return std::make_unique<RamonAsic>(switchId, switchInfo, sdkVersion);
case cfg::AsicType::ASIC_TYPE_RAMON3:
Expand Down
Loading
Loading