From 3c3dc31fef1cc840920b4a1c11b2da51a9327bd1 Mon Sep 17 00:00:00 2001 From: Nikola Dancejic Date: Tue, 28 Oct 2025 13:52:43 -0700 Subject: [PATCH] Revert "[meta] do not fail bulk operations if MODE_IGNORE_ERROR (#1613)" This reverts commit fb5652bd59c4f2df1ef9106728a9776bbb40a83a. --- meta/Meta.cpp | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/meta/Meta.cpp b/meta/Meta.cpp index c6fb02bb8..a13459b70 100644 --- a/meta/Meta.cpp +++ b/meta/Meta.cpp @@ -18,11 +18,6 @@ #define CHECK_STATUS_SUCCESS(s) { if ((s) != SAI_STATUS_SUCCESS) return (s); } -#define CHECK_STATUS_SUCCESS_MODE(s,m) \ -{ \ - if ((s) != SAI_STATUS_SUCCESS && m != SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR) return (s); \ -} \ - #define VALIDATION_LIST(md,vlist) \ { \ auto _status = meta_genetic_validation_list(md,vlist.count,vlist.list); \ @@ -628,14 +623,14 @@ sai_status_t Meta::bulkCreate( for (uint32_t idx = 0; idx < object_count; idx++) \ { \ sai_status_t status = meta_sai_validate_ ##ot (&ot[idx], true); \ - CHECK_STATUS_SUCCESS_MODE(status, mode); \ + CHECK_STATUS_SUCCESS(status); \ sai_object_meta_key_t meta_key = { \ .objecttype = (sai_object_type_t)SAI_OBJECT_TYPE_ ## OT, \ .objectkey = { .key = { .ot = ot[idx] } } \ }; \ vmk.push_back(meta_key); \ status = meta_generic_validation_create(meta_key, ot[idx].switch_id, attr_count[idx], attr_list[idx]); \ - CHECK_STATUS_SUCCESS_MODE(status, mode); \ + CHECK_STATUS_SUCCESS(status); \ } \ auto status = m_implementation->bulkCreate(object_count, ot, attr_count, attr_list, mode, object_statuses); \ for (uint32_t idx = 0; idx < object_count; idx++) \ @@ -672,14 +667,14 @@ sai_status_t Meta::bulkRemove( for (uint32_t idx = 0; idx < object_count; idx++) \ { \ sai_status_t status = meta_sai_validate_ ##ot (&ot[idx], false); \ - CHECK_STATUS_SUCCESS_MODE(status, mode); \ + CHECK_STATUS_SUCCESS(status); \ sai_object_meta_key_t meta_key = { \ .objecttype = (sai_object_type_t)SAI_OBJECT_TYPE_ ## OT, \ .objectkey = { .key = { .ot = ot[idx] } } \ }; \ vmk.push_back(meta_key); \ status = meta_generic_validation_remove(meta_key); \ - CHECK_STATUS_SUCCESS_MODE(status, mode); \ + CHECK_STATUS_SUCCESS(status); \ } \ auto status = m_implementation->bulkRemove(object_count, ot, mode, object_statuses); \ for (uint32_t idx = 0; idx < object_count; idx++) \ @@ -718,14 +713,14 @@ sai_status_t Meta::bulkSet( for (uint32_t idx = 0; idx < object_count; idx++) \ { \ sai_status_t status = meta_sai_validate_ ##ot (&ot[idx], false); \ - CHECK_STATUS_SUCCESS_MODE(status, mode); \ + CHECK_STATUS_SUCCESS(status); \ sai_object_meta_key_t meta_key = { \ .objecttype = (sai_object_type_t)SAI_OBJECT_TYPE_ ## OT, \ .objectkey = { .key = { .ot = ot[idx] } } \ }; \ vmk.push_back(meta_key); \ status = meta_generic_validation_set(meta_key, &attr_list[idx]); \ - CHECK_STATUS_SUCCESS_MODE(status, mode); \ + CHECK_STATUS_SUCCESS(status); \ } \ auto status = m_implementation->bulkSet(object_count, ot, attr_list, mode, object_statuses); \ for (uint32_t idx = 0; idx < object_count; idx++) \ @@ -1211,7 +1206,7 @@ sai_status_t Meta::bulkRemove( { sai_status_t status = meta_sai_validate_oid(object_type, &object_id[idx], SAI_NULL_OBJECT_ID, false); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); sai_object_meta_key_t meta_key = { .objecttype = object_type, .objectkey = { .key = { .object_id = object_id[idx] } } }; @@ -1219,7 +1214,7 @@ sai_status_t Meta::bulkRemove( status = meta_generic_validation_remove(meta_key); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); } auto status = m_implementation->bulkRemove(object_type, object_count, object_id, mode, object_statuses); @@ -1273,7 +1268,7 @@ sai_status_t Meta::bulkSet( { sai_status_t status = meta_sai_validate_oid(object_type, &object_id[idx], SAI_NULL_OBJECT_ID, false); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); sai_object_meta_key_t meta_key = { .objecttype = object_type, .objectkey = { .key = { .object_id = object_id[idx] } } }; @@ -1281,7 +1276,7 @@ sai_status_t Meta::bulkSet( status = meta_generic_validation_set(meta_key, &attr_list[idx]); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); } auto status = m_implementation->bulkSet(object_type, object_count, object_id, attr_list, mode, object_statuses); @@ -1333,7 +1328,7 @@ sai_status_t Meta::bulkGet( { sai_status_t status = meta_sai_validate_oid(object_type, &object_id[idx], SAI_NULL_OBJECT_ID, false); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); sai_object_meta_key_t meta_key = { .objecttype = object_type, .objectkey = { .key = { .object_id = object_id[idx] } } }; @@ -1341,7 +1336,10 @@ sai_status_t Meta::bulkGet( status = meta_generic_validation_get(meta_key, attr_count[idx], attr_list[idx]); - CHECK_STATUS_SUCCESS_MODE(status, mode); + // FIXME: This macro returns on failure. + // When mode is SAI_BULK_OP_ERROR_MODE_IGNORE_ERROR we should continue instead of return. + // This issue exists for all bulk operations. + CHECK_STATUS_SUCCESS(status); } auto status = m_implementation->bulkGet(object_type, object_count, object_id, attr_count, attr_list, mode, object_statuses); @@ -1416,7 +1414,7 @@ sai_status_t Meta::bulkCreate( { sai_status_t status = meta_sai_validate_oid(object_type, &object_id[idx], switchId, true); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); // this is create, oid's don't exist yet @@ -1426,7 +1424,7 @@ sai_status_t Meta::bulkCreate( status = meta_generic_validation_create(meta_key, switchId, attr_count[idx], attr_list[idx]); - CHECK_STATUS_SUCCESS_MODE(status, mode); + CHECK_STATUS_SUCCESS(status); } auto status = m_implementation->bulkCreate(object_type, switchId, object_count, attr_count, attr_list, mode, object_id, object_statuses);