Skip to content

Commit

Permalink
Merge branch 'master' into port-auto-neg-review
Browse files Browse the repository at this point in the history
  • Loading branch information
Junchao-Mellanox authored May 18, 2021
2 parents 6faa0bc + 7c6ebb1 commit a614e59
Show file tree
Hide file tree
Showing 21 changed files with 596 additions and 316 deletions.
1 change: 1 addition & 0 deletions orchagent/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ orchagent_SOURCES = \
neighorch.cpp \
intfsorch.cpp \
portsorch.cpp \
fabricportsorch.cpp \
fgnhgorch.cpp \
copporch.cpp \
tunneldecaporch.cpp \
Expand Down
72 changes: 60 additions & 12 deletions orchagent/bulker.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <sairedis.h>
#include "sai.h"
#include "logger.h"
#include "sai_serialize.h"

static inline bool operator==(const sai_ip_prefix_t& a, const sai_ip_prefix_t& b)
{
Expand Down Expand Up @@ -282,8 +283,16 @@ class EntityBulker
}
size_t count = rs.size();
std::vector<sai_status_t> statuses(count);
(*remove_entries)((uint32_t)count, rs.data(), SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statuses.data());
SWSS_LOG_INFO("EntityBulker.flush removing_entries %zu\n", removing_entries.size());
sai_status_t status = (*remove_entries)((uint32_t)count, rs.data(), SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statuses.data());
if (status == SAI_STATUS_SUCCESS)
{
SWSS_LOG_INFO("EntityBulker.flush removing_entries %zu\n", removing_entries.size());
}
else
{
SWSS_LOG_ERROR("EntityBulker.flush remove entries failed, number of entries to remove: %zu, status: %s",
removing_entries.size(), sai_serialize_status(status).c_str());
}

for (size_t ir = 0; ir < count; ir++)
{
Expand Down Expand Up @@ -318,9 +327,17 @@ class EntityBulker
}
size_t count = rs.size();
std::vector<sai_status_t> statuses(count);
(*create_entries)((uint32_t)count, rs.data(), cs.data(), tss.data()
sai_status_t status = (*create_entries)((uint32_t)count, rs.data(), cs.data(), tss.data()
, SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statuses.data());
SWSS_LOG_INFO("EntityBulker.flush creating_entries %zu\n", creating_entries.size());
if (status == SAI_STATUS_SUCCESS)
{
SWSS_LOG_INFO("EntityBulker.flush creating_entries %zu\n", creating_entries.size());
}
else
{
SWSS_LOG_ERROR("EntityBulker.flush create entries failed, number of entries to create: %zu, status: %s",
creating_entries.size(), sai_serialize_status(status).c_str());
}

for (size_t ir = 0; ir < count; ir++)
{
Expand Down Expand Up @@ -359,9 +376,17 @@ class EntityBulker
}
size_t count = rs.size();
std::vector<sai_status_t> statuses(count);
(*set_entries_attribute)((uint32_t)count, rs.data(), ts.data()
sai_status_t status = (*set_entries_attribute)((uint32_t)count, rs.data(), ts.data()
, SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statuses.data());
SWSS_LOG_INFO("EntityBulker.flush setting_entries %zu, count %zu\n", setting_entries.size(), count);
if (status == SAI_STATUS_SUCCESS)
{
SWSS_LOG_INFO("EntityBulker.flush setting_entries %zu, count %zu\n", setting_entries.size(), count);
}
else
{
SWSS_LOG_ERROR("EntityBulker.flush set entry attribute failed, number of entries to set: %zu, status: %s",
setting_entries.size(), sai_serialize_status(status).c_str());
}

for (size_t ir = 0; ir < count; ir++)
{
Expand Down Expand Up @@ -544,7 +569,15 @@ class ObjectBulker
size_t count = rs.size();
std::vector<sai_status_t> statuses(count);
sai_status_t status = (*remove_entries)((uint32_t)count, rs.data(), SAI_BULK_OP_ERROR_MODE_STOP_ON_ERROR, statuses.data());
SWSS_LOG_INFO("ObjectBulker.flush removing_entries %zu rc=%d statuses[0]=%d\n", removing_entries.size(), status, statuses[0]);
if (status == SAI_STATUS_SUCCESS)
{
SWSS_LOG_INFO("ObjectBulker.flush removing_entries %zu rc=%d statuses[0]=%d\n", removing_entries.size(), status, statuses[0]);
}
else
{
SWSS_LOG_ERROR("ObjectBulker.flush remove entries failed, number of entries to remove: %zu, status: %s",
removing_entries.size(), sai_serialize_status(status).c_str());
}

for (size_t i = 0; i < count; i++)
{
Expand Down Expand Up @@ -574,9 +607,17 @@ class ObjectBulker
size_t count = creating_entries.size();
std::vector<sai_object_id_t> object_ids(count);
std::vector<sai_status_t> statuses(count);
(*create_entries)(switch_id, (uint32_t)count, cs.data(), tss.data()
sai_status_t status = (*create_entries)(switch_id, (uint32_t)count, cs.data(), tss.data()
, SAI_BULK_OP_ERROR_MODE_STOP_ON_ERROR, object_ids.data(), statuses.data());
SWSS_LOG_INFO("ObjectBulker.flush creating_entries %zu\n", creating_entries.size());
if (status == SAI_STATUS_SUCCESS)
{
SWSS_LOG_INFO("ObjectBulker.flush creating_entries %zu\n", creating_entries.size());
}
else
{
SWSS_LOG_ERROR("ObjectBulker.flush create entries failed, number of entries to create: %zu, status: %s",
creating_entries.size(), sai_serialize_status(status).c_str());
}

for (size_t i = 0; i < count; i++)
{
Expand Down Expand Up @@ -607,10 +648,17 @@ class ObjectBulker
}
size_t count = setting_entries.size();
std::vector<sai_status_t> statuses(count);
(*set_entries_attribute)((uint32_t)count, rs.data(), ts.data()
sai_status_t status = (*set_entries_attribute)((uint32_t)count, rs.data(), ts.data()
, SAI_BULK_OP_ERROR_MODE_STOP_ON_ERROR, statuses.data());
SWSS_LOG_INFO("ObjectBulker.flush setting_entries %zu\n", setting_entries.size());
if (status == SAI_STATUS_SUCCESS)
{
SWSS_LOG_INFO("ObjectBulker.flush setting_entries %zu\n", setting_entries.size());
}
else
{
SWSS_LOG_ERROR("ObjectBulker.flush set entry attribute failed, number of entries to set: %zu, status: %s",
setting_entries.size(), sai_serialize_status(status).c_str());
}
setting_entries.clear();
}
Expand Down
Loading

0 comments on commit a614e59

Please sign in to comment.