Skip to content

Commit d82874d

Browse files
authored
Fix for "orchagent crashed when trying to delete fdb static entry with swssconfig #11046" (#2332)
* Fix updated to not flush static mac
1 parent 0c789e6 commit d82874d

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

orchagent/fdborch.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -899,7 +899,12 @@ void FdbOrch::doTask(NotificationConsumer& consumer)
899899
{
900900
if (op == "ALL")
901901
{
902-
status = sai_fdb_api->flush_fdb_entries(gSwitchId, 0, NULL);
902+
vector<sai_attribute_t> attrs;
903+
sai_attribute_t attr;
904+
attr.id = SAI_FDB_FLUSH_ATTR_ENTRY_TYPE;
905+
attr.value.s32 = SAI_FDB_FLUSH_ENTRY_TYPE_DYNAMIC;
906+
attrs.push_back(attr);
907+
status = sai_fdb_api->flush_fdb_entries(gSwitchId, (uint32_t)attrs.size(), attrs.data());
903908
if (status != SAI_STATUS_SUCCESS)
904909
{
905910
SWSS_LOG_ERROR("Flush fdb failed, return code %x", status);
@@ -1056,6 +1061,11 @@ void FdbOrch::flushFDBEntries(sai_object_id_t bridge_port_oid,
10561061
attr.value.oid = vlan_oid;
10571062
attrs.push_back(attr);
10581063
}
1064+
1065+
/* do not flush static mac */
1066+
attr.id = SAI_FDB_FLUSH_ATTR_ENTRY_TYPE;
1067+
attr.value.s32 = SAI_FDB_FLUSH_ENTRY_TYPE_DYNAMIC;
1068+
attrs.push_back(attr);
10591069

10601070
SWSS_LOG_INFO("Flushing FDB bridge_port_oid: 0x%" PRIx64 ", and bvid_oid:0x%" PRIx64 ".", bridge_port_oid, vlan_oid);
10611071

0 commit comments

Comments
 (0)