unittest/syncd/MockableSaiInterface.cpp (371 lines of code) (raw):

#include "MockableSaiInterface.h" #include "swss/logger.h" MockableSaiInterface::MockableSaiInterface() { SWSS_LOG_ENTER(); } MockableSaiInterface::~MockableSaiInterface() { SWSS_LOG_ENTER(); } sai_status_t MockableSaiInterface::apiInitialize( _In_ uint64_t flags, _In_ const sai_service_method_table_t *service_method_table) { SWSS_LOG_ENTER(); return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::apiUninitialize() { SWSS_LOG_ENTER(); return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::create( _In_ sai_object_type_t objectType, _Out_ sai_object_id_t* objectId, _In_ sai_object_id_t switchId, _In_ uint32_t attr_count, _In_ const sai_attribute_t *attr_list) { SWSS_LOG_ENTER(); if (mock_create) { return mock_create(objectType, objectId, switchId, attr_count, attr_list); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::remove( _In_ sai_object_type_t objectType, _In_ sai_object_id_t objectId) { SWSS_LOG_ENTER(); if (mock_remove) { return mock_remove(objectType, objectId); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::set( _In_ sai_object_type_t objectType, _In_ sai_object_id_t objectId, _In_ const sai_attribute_t *attr) { SWSS_LOG_ENTER(); if (mock_set) { return mock_set(objectType, objectId, attr); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::get( _In_ sai_object_type_t objectType, _In_ sai_object_id_t objectId, _In_ uint32_t attr_count, _Inout_ sai_attribute_t *attr_list) { SWSS_LOG_ENTER(); if (mock_get) { return mock_get(objectType, objectId, attr_count, attr_list); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::bulkCreate( _In_ sai_object_type_t object_type, _In_ sai_object_id_t switch_id, _In_ uint32_t object_count, _In_ const uint32_t *attr_count, _In_ const sai_attribute_t **attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_object_id_t *object_id, _Out_ sai_status_t *object_statuses) { SWSS_LOG_ENTER(); if (mock_bulkCreate) { return mock_bulkCreate(object_type, switch_id, object_count, attr_count, attr_list, mode, object_id, object_statuses); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::bulkRemove( _In_ sai_object_type_t object_type, _In_ uint32_t object_count, _In_ const sai_object_id_t *object_id, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses) { SWSS_LOG_ENTER(); if (mock_bulkRemove) { return mock_bulkRemove(object_type, object_count, object_id, mode, object_statuses); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::bulkSet( _In_ sai_object_type_t object_type, _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) { SWSS_LOG_ENTER(); if (mock_bulkSet) { return mock_bulkSet(object_type, object_count, object_id, attr_list, mode, object_statuses); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::bulkGet( _In_ sai_object_type_t object_type, _In_ uint32_t object_count, _In_ const sai_object_id_t *object_id, _In_ const uint32_t *attr_count, _Inout_ sai_attribute_t **attr_list, _In_ sai_bulk_op_error_mode_t mode, _Out_ sai_status_t *object_statuses) { SWSS_LOG_ENTER(); SWSS_LOG_ERROR("not implemented, FIXME"); return SAI_STATUS_NOT_IMPLEMENTED; } sai_status_t MockableSaiInterface::getStats( _In_ sai_object_type_t object_type, _In_ sai_object_id_t object_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _Out_ uint64_t *counters) { SWSS_LOG_ENTER(); if (mock_getStats) { return mock_getStats(object_type, object_id, number_of_counters, counter_ids, counters); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::queryStatsCapability( _In_ sai_object_id_t switch_id, _In_ sai_object_type_t object_type, _Inout_ sai_stat_capability_list_t *stats_capability) { SWSS_LOG_ENTER(); if (mock_queryStatsCapability) { return mock_queryStatsCapability(switch_id, object_type, stats_capability); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::queryStatsStCapability( _In_ sai_object_id_t switch_id, _In_ sai_object_type_t object_type, _Inout_ sai_stat_st_capability_list_t *stats_capability) { SWSS_LOG_ENTER(); if (mock_queryStatsStCapability) { return mock_queryStatsStCapability(switch_id, object_type, stats_capability); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::getStatsExt( _In_ sai_object_type_t object_type, _In_ sai_object_id_t object_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Out_ uint64_t *counters) { SWSS_LOG_ENTER(); if (mock_getStatsExt) { return mock_getStatsExt(object_type, object_id, number_of_counters, counter_ids, mode, counters); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::clearStats( _In_ sai_object_type_t object_type, _In_ sai_object_id_t object_id, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids) { SWSS_LOG_ENTER(); if (mock_clearStats) { return mock_clearStats(object_type, object_id, number_of_counters, counter_ids); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::bulkGetStats( _In_ sai_object_id_t switchId, _In_ sai_object_type_t object_type, _In_ uint32_t object_count, _In_ const sai_object_key_t *object_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Inout_ sai_status_t *object_statuses, _Out_ uint64_t *counters) { SWSS_LOG_ENTER(); if (mock_bulkGetStats) { return mock_bulkGetStats(switchId, object_type, object_count, object_key, number_of_counters, counter_ids, mode, object_statuses, counters); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::bulkClearStats( _In_ sai_object_id_t switchId, _In_ sai_object_type_t object_type, _In_ uint32_t object_count, _In_ const sai_object_key_t *object_key, _In_ uint32_t number_of_counters, _In_ const sai_stat_id_t *counter_ids, _In_ sai_stats_mode_t mode, _Inout_ sai_status_t *object_statuses) { SWSS_LOG_ENTER(); if (mock_bulkClearStats) { return mock_bulkClearStats(switchId, object_type, object_count, object_key, number_of_counters, counter_ids, mode, object_statuses); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::flushFdbEntries( _In_ sai_object_id_t switchId, _In_ uint32_t attrCount, _In_ const sai_attribute_t *attrList) { SWSS_LOG_ENTER(); if (mock_flushFdbEntries) { return mock_flushFdbEntries(switchId, attrCount, attrList); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::switchMdioRead( _In_ sai_object_id_t switchId, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val) { SWSS_LOG_ENTER(); if (mock_switchMdioRead) { return mock_switchMdioRead(switchId, device_addr, start_reg_addr, number_of_registers, reg_val); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::switchMdioWrite( _In_ sai_object_id_t switchId, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val) { SWSS_LOG_ENTER(); if (mock_switchMdioWrite) { return mock_switchMdioWrite(switchId, device_addr, start_reg_addr, number_of_registers, reg_val); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::switchMdioCl22Read( _In_ sai_object_id_t switchId, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _Out_ uint32_t *reg_val) { SWSS_LOG_ENTER(); if (mock_switchMdioCl22Read) { return mock_switchMdioCl22Read(switchId, device_addr, start_reg_addr, number_of_registers, reg_val); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::switchMdioCl22Write( _In_ sai_object_id_t switchId, _In_ uint32_t device_addr, _In_ uint32_t start_reg_addr, _In_ uint32_t number_of_registers, _In_ const uint32_t *reg_val) { SWSS_LOG_ENTER(); if (mock_switchMdioCl22Write) { return mock_switchMdioCl22Write(switchId, device_addr, start_reg_addr, number_of_registers, reg_val); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::objectTypeGetAvailability( _In_ sai_object_id_t switchId, _In_ sai_object_type_t objectType, _In_ uint32_t attrCount, _In_ const sai_attribute_t *attrList, _Out_ uint64_t *count) { SWSS_LOG_ENTER(); if (mock_objectTypeGetAvailability) { return mock_objectTypeGetAvailability(switchId, objectType, attrCount, attrList, count); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::queryAttributeCapability( _In_ sai_object_id_t switch_id, _In_ sai_object_type_t object_type, _In_ sai_attr_id_t attr_id, _Out_ sai_attr_capability_t *capability) { SWSS_LOG_ENTER(); if (mock_queryAttributeCapability) { return mock_queryAttributeCapability(switch_id, object_type, attr_id, capability); } return SAI_STATUS_SUCCESS; } sai_status_t MockableSaiInterface::queryAttributeEnumValuesCapability( _In_ sai_object_id_t switch_id, _In_ sai_object_type_t object_type, _In_ sai_attr_id_t attr_id, _Inout_ sai_s32_list_t *enum_values_capability) { SWSS_LOG_ENTER(); if (mock_queryAttributeEnumValuesCapability) { return mock_queryAttributeEnumValuesCapability(switch_id, object_type, attr_id, enum_values_capability); } return SAI_STATUS_SUCCESS; } sai_object_type_t MockableSaiInterface::objectTypeQuery( _In_ sai_object_id_t objectId) { SWSS_LOG_ENTER(); if (mock_objectTypeQuery) { return mock_objectTypeQuery(objectId); } return SAI_OBJECT_TYPE_NULL; } sai_object_id_t MockableSaiInterface::switchIdQuery( _In_ sai_object_id_t objectId) { SWSS_LOG_ENTER(); if (mock_switchIdQuery) { return mock_switchIdQuery(objectId); } return 0; } sai_status_t MockableSaiInterface::logSet( _In_ sai_api_t api, _In_ sai_log_level_t log_level) { SWSS_LOG_ENTER(); if (mock_logSet) { return mock_logSet(api, log_level); } return SAI_STATUS_SUCCESS; }