From 380980e7b6d4ac473c292ed5d26cd43ce19e810b Mon Sep 17 00:00:00 2001 From: Stepan Blyschak Date: Fri, 16 Aug 2024 07:06:46 +0000 Subject: [PATCH 1/2] Fix bulk admin status set typedef sai_status_t (*sai_bulk_object_set_attribute_fn)( _In_ uint32_t object_count, _In_ const sai_object_id_t *object_id, _In_ const sai_attribute_t *attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses); attr_list requires to be a list with attributes per port. Signed-off-by: Stepan Blyschak --- orchagent/portsorch.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/orchagent/portsorch.cpp b/orchagent/portsorch.cpp index 91330f2fd57..7328f475fb0 100755 --- a/orchagent/portsorch.cpp +++ b/orchagent/portsorch.cpp @@ -1005,6 +1005,7 @@ bool PortsOrch::setPortAdminStatusBulk(const std::vector &portList) auto portCount = static_cast(portList.size()); std::vector statusList(portCount, SAI_STATUS_SUCCESS); + std::vector attrList(portCount, attr); std::vector oidList; for (std::uint32_t i = 0; i < portCount; i++) { @@ -1012,7 +1013,7 @@ bool PortsOrch::setPortAdminStatusBulk(const std::vector &portList) } auto status = sai_port_api->set_ports_attribute( - portCount, oidList.data(), &attr, + portCount, oidList.data(), attrList.data(), SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statusList.data() ); if (status != SAI_STATUS_SUCCESS) From 9dd9d9fa949248bb3c73ddebddc62e3323f064a8 Mon Sep 17 00:00:00 2001 From: Stepan Blyschak Date: Fri, 16 Aug 2024 11:46:44 +0000 Subject: [PATCH 2/2] Fix incorrect buflk api usage Signed-off-by: Stepan Blyschak --- orchagent/bufferorch.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/orchagent/bufferorch.cpp b/orchagent/bufferorch.cpp index 4b8dbdad918..b292882d7b7 100644 --- a/orchagent/bufferorch.cpp +++ b/orchagent/bufferorch.cpp @@ -868,9 +868,10 @@ task_process_status BufferOrch::processQueuesBulk(KeyOpFieldsValuesTuple &tuple) } auto queueCount = static_cast(queueIdList.size()); std::vector statusList(queueCount, SAI_STATUS_SUCCESS); + std::vector attrList(queueCount, attr); auto status = sai_queue_api->set_queues_attribute( - queueCount, queueIdList.data(), &attr, + queueCount, queueIdList.data(), attrList.data(), SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statusList.data() ); @@ -1275,9 +1276,10 @@ task_process_status BufferOrch::processPriorityGroupsBulk(KeyOpFieldsValuesTuple auto pgCount = static_cast(pgIdList.size()); std::vector statusList(pgCount, SAI_STATUS_SUCCESS); + std::vector attrList(pgCount, attr); auto status = sai_buffer_api->set_ingress_priority_groups_attribute( - pgCount, pgIdList.data(), &attr, + pgCount, pgIdList.data(), attrList.data(), SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR, statusList.data() );