@@ -573,12 +573,6 @@ sai_status_t Syncd::processBulkQuadEvent(
573573{
574574 SWSS_LOG_ENTER ();
575575
576- if (isInitViewMode ())
577- {
578- SWSS_LOG_THROW (" bulk api (%s) is not supported in init view mode, FIXME" ,
579- sai_serialize_common_api (api).c_str ());
580- }
581-
582576 const std::string& key = kfvKey (kco); // objectType:count
583577
584578 std::string strObjectType = key.substr (0 , key.find (" :" ));
@@ -644,6 +638,11 @@ sai_status_t Syncd::processBulkQuadEvent(
644638 }
645639 }
646640
641+ if (isInitViewMode ())
642+ {
643+ return processBulkQuadEventInInitViewMode (objectType, objectIds, api, attributes);
644+ }
645+
647646 auto info = sai_metadata_get_object_type_info (objectType);
648647
649648 if (info->isobjectid )
@@ -656,6 +655,54 @@ sai_status_t Syncd::processBulkQuadEvent(
656655 }
657656}
658657
658+ sai_status_t Syncd::processBulkQuadEventInInitViewMode (
659+ _In_ sai_object_type_t objectType,
660+ _In_ const std::vector<std::string> &object_ids,
661+ _In_ sai_common_api_t api,
662+ _In_ const std::vector<std::shared_ptr<saimeta::SaiAttributeList>> &attributes)
663+ {
664+ SWSS_LOG_ENTER ();
665+
666+ auto info = sai_metadata_get_object_type_info (objectType);
667+
668+ switch (api)
669+ {
670+ case SAI_COMMON_API_BULK_CREATE:
671+ case SAI_COMMON_API_BULK_REMOVE:
672+ case SAI_COMMON_API_BULK_SET:
673+
674+ if (info->isnonobjectid )
675+ {
676+ sendApiResponse (api, SAI_STATUS_SUCCESS);
677+ return SAI_STATUS_SUCCESS;
678+ }
679+
680+ switch (objectType)
681+ {
682+ case SAI_OBJECT_TYPE_SWITCH:
683+ case SAI_OBJECT_TYPE_PORT:
684+ case SAI_OBJECT_TYPE_SCHEDULER_GROUP:
685+ case SAI_OBJECT_TYPE_INGRESS_PRIORITY_GROUP:
686+
687+ SWSS_LOG_THROW (" %s is not supported in init view mode" ,
688+ sai_serialize_object_type (objectType).c_str ());
689+
690+ default :
691+
692+ sendApiResponse (api, SAI_STATUS_SUCCESS);
693+ return SAI_STATUS_SUCCESS;
694+ }
695+
696+ case SAI_COMMON_API_BULK_GET:
697+ SWSS_LOG_THROW (" GET bulk api is not implemented in init view mode, FIXME" );
698+
699+ default :
700+
701+ SWSS_LOG_THROW (" common bulk api (%s) is not implemented in init view mode" ,
702+ sai_serialize_common_api (api).c_str ());
703+ }
704+ }
705+
659706sai_status_t Syncd::processBulkEntry (
660707 _In_ sai_object_type_t objectType,
661708 _In_ const std::vector<std::string> &objectIds,
0 commit comments