@@ -573,12 +573,6 @@ sai_status_t Syncd::processBulkQuadEvent(
573
573
{
574
574
SWSS_LOG_ENTER ();
575
575
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
-
582
576
const std::string& key = kfvKey (kco); // objectType:count
583
577
584
578
std::string strObjectType = key.substr (0 , key.find (" :" ));
@@ -644,6 +638,11 @@ sai_status_t Syncd::processBulkQuadEvent(
644
638
}
645
639
}
646
640
641
+ if (isInitViewMode ())
642
+ {
643
+ return processBulkQuadEventInInitViewMode (objectType, objectIds, api, attributes);
644
+ }
645
+
647
646
auto info = sai_metadata_get_object_type_info (objectType);
648
647
649
648
if (info->isobjectid )
@@ -656,6 +655,54 @@ sai_status_t Syncd::processBulkQuadEvent(
656
655
}
657
656
}
658
657
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
+
659
706
sai_status_t Syncd::processBulkEntry (
660
707
_In_ sai_object_type_t objectType,
661
708
_In_ const std::vector<std::string> &objectIds,
0 commit comments