diff --git a/fboss/agent/hw/sai/hw_test/HwTestMirrorUtils.cpp b/fboss/agent/hw/sai/hw_test/HwTestMirrorUtils.cpp index 5472726b5306a..bcc8a601741c6 100644 --- a/fboss/agent/hw/sai/hw_test/HwTestMirrorUtils.cpp +++ b/fboss/agent/hw/sai/hw_test/HwTestMirrorUtils.cpp @@ -94,7 +94,7 @@ static void verifyResolvedErspanMirror( auto tos = SaiApiTable::getInstance()->mirrorApi().getAttribute( mirrorHandle->adapterKey(), SaiEnhancedRemoteMirrorTraits::Attributes::Tos()); - EXPECT_EQ(tos, mirror->getDscp()); + EXPECT_EQ(tos, static_cast(mirror->getDscp() << 2)); const auto& tunnel = mirror->getMirrorTunnel(); @@ -146,7 +146,7 @@ static void verifyResolvedSflowMirror( // TOS auto tos = SaiApiTable::getInstance()->mirrorApi().getAttribute( mirrorHandle->adapterKey(), SaiSflowMirrorTraits::Attributes::Tos()); - EXPECT_EQ(tos, mirror->getDscp()); + EXPECT_EQ(tos, static_cast(mirror->getDscp() << 2)); const auto& tunnel = mirror->getMirrorTunnel(); diff --git a/fboss/agent/hw/sai/hw_test/HwTestMirrorUtilsThriftHandler.cpp b/fboss/agent/hw/sai/hw_test/HwTestMirrorUtilsThriftHandler.cpp index 0faa918f1e4db..f9ac25408cb31 100644 --- a/fboss/agent/hw/sai/hw_test/HwTestMirrorUtilsThriftHandler.cpp +++ b/fboss/agent/hw/sai/hw_test/HwTestMirrorUtilsThriftHandler.cpp @@ -87,9 +87,11 @@ bool verifyResolvedMirror( auto tos = SaiApiTable::getInstance()->mirrorApi().getAttribute( mirrorHandle->adapterKey(), SaiEnhancedRemoteMirrorTraits::Attributes::Tos()); - if (tos != folly::copy(mirror.dscp().value())) { + const auto expectedTos = + static_cast(folly::copy(mirror.dscp().value()) << 2); + if (tos != expectedTos) { XLOG(ERR) << "verifyResolvedMirror: TOS mismatch, expected " - << (int)mirror.dscp().value() << " got " << (int)tos; + << (int)expectedTos << " got " << (int)tos; return false; } diff --git a/fboss/agent/hw/sai/switch/SaiMirrorManager.cpp b/fboss/agent/hw/sai/switch/SaiMirrorManager.cpp index 46778e1215b4c..f2d8cdc859999 100644 --- a/fboss/agent/hw/sai/switch/SaiMirrorManager.cpp +++ b/fboss/agent/hw/sai/switch/SaiMirrorManager.cpp @@ -56,7 +56,7 @@ SaiMirrorHandle::SaiMirror SaiMirrorManager::addNodeErSpan( SAI_MIRROR_SESSION_TYPE_ENHANCED_REMOTE, monitorPort, SAI_ERSPAN_ENCAPSULATION_TYPE_MIRROR_L3_GRE_TUNNEL, - mirror->getDscp(), + static_cast(mirror->getDscp() << 2), mirrorTunnel.srcIp, mirrorTunnel.dstIp, mirrorTunnel.srcMac, @@ -92,7 +92,7 @@ SaiMirrorHandle::SaiMirror SaiMirrorManager::addNodeSflow( SaiSflowMirrorTraits::CreateAttributes attributes{ SAI_MIRROR_SESSION_TYPE_SFLOW, monitorPort, - mirror->getDscp(), + static_cast(mirror->getDscp() << 2), mirrorTunnel.srcIp, mirrorTunnel.dstIp, mirrorTunnel.srcMac, diff --git a/fboss/agent/hw/sai/switch/tests/MirrorManagerTest.cpp b/fboss/agent/hw/sai/switch/tests/MirrorManagerTest.cpp index 7baff0c5aa9f7..039808665dbc5 100644 --- a/fboss/agent/hw/sai/switch/tests/MirrorManagerTest.cpp +++ b/fboss/agent/hw/sai/switch/tests/MirrorManagerTest.cpp @@ -122,7 +122,7 @@ class MirrorManagerTest : public ManagerTestBase { EXPECT_EQ(gotDstMac, dstMac); auto gotTos = mirrorApi.getAttribute( mirrorSaiId, SaiEnhancedRemoteMirrorTraits::Attributes::Tos{}); - EXPECT_EQ(gotTos, tos); + EXPECT_EQ(gotTos, static_cast(tos << 2)); auto gotTtl = mirrorApi.getAttribute( mirrorSaiId, SaiEnhancedRemoteMirrorTraits::Attributes::Ttl{}); EXPECT_EQ(gotTtl, ttl); @@ -164,7 +164,7 @@ class MirrorManagerTest : public ManagerTestBase { EXPECT_EQ(gotDstMac, dstMac); auto gotTos = mirrorApi.getAttribute( mirrorSaiId, SaiSflowMirrorTraits::Attributes::Tos{}); - EXPECT_EQ(gotTos, tos); + EXPECT_EQ(gotTos, static_cast(tos << 2)); auto gotTtl = mirrorApi.getAttribute( mirrorSaiId, SaiSflowMirrorTraits::Attributes::Ttl{}); EXPECT_EQ(gotTtl, ttl);