Skip to content

Commit 48cccb4

Browse files
authored
do not use sai_query_api_version if vendor sai does not support in VendorSai.cpp (sonic-net#1064)
introduce function check if sai_query_api_version exists or not configure.ac. If not, then do not call this function in the syncd. Signed-off-by: Guohan Lu <[email protected]>
1 parent 9b0f773 commit 48cccb4

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

configure.ac

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ AM_COND_IF([SYNCD], [
186186
AM_COND_IF([SAIVS], [], [
187187
SAVED_FLAGS="$CXXFLAGS"
188188
CXXFLAGS="-lsai -I$srcdir/SAI/inc -I$srcdir/SAI/experimental -I$srcdir/SAI/meta"
189-
AC_CHECK_FUNC(sai_query_api_version, [
189+
AC_CHECK_FUNCS(sai_query_api_version, [
190190
AC_MSG_CHECKING([SAI headers API version and library version check])
191191
AC_TRY_RUN([
192192
extern "C" {

syncd/VendorSai.cpp

+6-4
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,14 @@ sai_status_t VendorSai::initialize(
5858
return SAI_STATUS_INVALID_PARAMETER;
5959
}
6060

61+
#ifdef HAVE_SAI_QUERY_API_VERSION
6162
sai_api_version_t version{};
62-
auto status = sai_query_api_version(&version);
63-
if (status != SAI_STATUS_SUCCESS)
63+
auto api_status = sai_query_api_version(&version);
64+
if (api_status != SAI_STATUS_SUCCESS)
6465
{
6566
SWSS_LOG_ERROR("failed to query SAI API version");
6667

67-
return status;
68+
return api_status;
6869
}
6970

7071
SWSS_LOG_NOTICE("SAI API version: %" PRId64, version);
@@ -76,10 +77,11 @@ sai_status_t VendorSai::initialize(
7677

7778
return SAI_STATUS_FAILURE;
7879
}
80+
#endif
7981

8082
memcpy(&m_service_method_table, service_method_table, sizeof(m_service_method_table));
8183

82-
status = sai_api_initialize(flags, service_method_table);
84+
auto status = sai_api_initialize(flags, service_method_table);
8385

8486
if (status == SAI_STATUS_SUCCESS)
8587
{

0 commit comments

Comments
 (0)