From 3cd7a6e8abd58d922e301ab13334fee1d15de1a4 Mon Sep 17 00:00:00 2001 From: pavelsh Date: Fri, 14 Apr 2017 01:25:17 +0000 Subject: [PATCH 1/2] Add packaging for syncd-rpc --- debian/changelog | 6 ++++++ debian/control | 6 ++++++ debian/rules | 39 ++++++++++++++++++++++++++------------- debian/syncd-rpc.dirs | 1 + debian/syncd-rpc.init | 1 + debian/syncd-rpc.install | 1 + syncd/Makefile.am | 6 ++---- 7 files changed, 43 insertions(+), 17 deletions(-) create mode 120000 debian/syncd-rpc.dirs create mode 120000 debian/syncd-rpc.init create mode 120000 debian/syncd-rpc.install diff --git a/debian/changelog b/debian/changelog index 2f82fdd936..17bb992be0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +sonic (1.0.0) stable; urgency=medium + + * syncd-rpc is added + + -- Pavel Shirshov Wed, 12 Apr 2017 12:00:00 -0800 + sonic (1.0.0) stable; urgency=medium * Initial release. diff --git a/debian/control b/debian/control index 51c35622ef..3603ba87e1 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,12 @@ Architecture: any Description: This package contains sync daemon for SONiC project. This sync daemon syncs the ASIC_DB in Redis database and the real ASIC via SAI. +Package: syncd-rpc +Architecture: any +Description: This package contains sync daemon with rpc for SONiC project. + This sync daemon syncs the ASIC_DB in Redis database and the real ASIC via SAI. + This daemon contains saithrift rpc library for remote control of an ASIC. + Package: libsairedis Architecture: any Section: libs diff --git a/debian/rules b/debian/rules index 621512da0e..7e1075ce51 100755 --- a/debian/rules +++ b/debian/rules @@ -16,9 +16,25 @@ include /usr/share/dpkg/default.mk # package maintainers to append LDFLAGS #export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed -# main packaging script based on dh7 syntax -%: - dh $@ --with autotools-dev +clean: + dh $@ --with autotools-dev + +build: + echo build stage is skipped. Please use binary to generate debian packages + +binary: binary-syncd binary-syncd-rpc + +binary-syncd: + $(shell echo > /tmp/syncd-build) + dh clean --with autotools-dev + dh build -N syncd-rpc --with autotools-dev + dh binary -N syncd-rpc --with autotools-dev + +binary-syncd-rpc: + $(shell echo '--enable-rpcserver=yes' > /tmp/syncd-build) + dh clean --with autotools-dev + dh build -N syncd --with autotools-dev + dh binary -N syncd --with autotools-dev # dh_make generated override targets # This is example for Cmake (See https://bugs.debian.org/641051 ) @@ -26,20 +42,17 @@ include /usr/share/dpkg/default.mk # dh_auto_configure -- \ # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) -ifeq ($(findstring --enable-rpcserver=yes,${CONFIGURE_ARGS}),--enable-rpcserver=yes) - saithrift = yes -else - saithrift = no -endif - override_dh_auto_configure: - dh_auto_configure -- ${CONFIGURE_ARGS} + ./autogen.sh + dh_auto_configure -- $(shell cat /tmp/syncd-build) override_dh_installinit: - ifeq ($(saithrift), yes) - sed -i 's/ENABLE_SAITHRIFT=0/ENABLE_SAITHRIFT=1/' debian/syncd.init + ifeq ($(shell cat /tmp/syncd-build), --enable-rpcserver=yes) + sed -i 's/ENABLE_SAITHRIFT=0/ENABLE_SAITHRIFT=1/' debian/syncd-rpc.init + else + sed -i 's/ENABLE_SAITHRIFT=1/ENABLE_SAITHRIFT=0/' debian/syncd.init endif - dh_installinit + dh_installinit --init-script=syncd override_dh_shlibdeps: dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info diff --git a/debian/syncd-rpc.dirs b/debian/syncd-rpc.dirs new file mode 120000 index 0000000000..9fda9b7537 --- /dev/null +++ b/debian/syncd-rpc.dirs @@ -0,0 +1 @@ +syncd.dirs \ No newline at end of file diff --git a/debian/syncd-rpc.init b/debian/syncd-rpc.init new file mode 120000 index 0000000000..1a51fab437 --- /dev/null +++ b/debian/syncd-rpc.init @@ -0,0 +1 @@ +syncd.init \ No newline at end of file diff --git a/debian/syncd-rpc.install b/debian/syncd-rpc.install new file mode 120000 index 0000000000..066eee5179 --- /dev/null +++ b/debian/syncd-rpc.install @@ -0,0 +1 @@ +syncd.install \ No newline at end of file diff --git a/syncd/Makefile.am b/syncd/Makefile.am index e321ea1b77..5d0945a190 100644 --- a/syncd/Makefile.am +++ b/syncd/Makefile.am @@ -28,10 +28,8 @@ syncd_CPPFLAGS = $(DBGFLAGS) $(AM_CPPFLAGS) $(CFLAGS_COMMON) $(SAIFLAGS) syncd_LDADD = -lhiredis -lswsscommon $(SAILIB) -lpthread -L$(top_srcdir)/meta/.libs -lsaimetadata if SAITHRIFT -SAI_RPC_INCLUDE_DIR = ../libsaiserver/include -SAI_RPC_LIB_DIR = ../libsaiserver/lib -syncd_CPPFLAGS += -I$(SAI_RPC_INCLUDE_DIR) -DSAITHRIFT=yes -syncd_LDADD += -L$(SAI_RPC_LIB_DIR) -lrpcserver -lthrift +syncd_CPPFLAGS += -DSAITHRIFT=yes +syncd_LDADD += -lrpcserver -lthrift endif syncd_request_shutdown_SOURCES = syncd_request_shutdown.cpp From 0ce3d53d6a98cf3c6c18bec28a109ac091d8e78d Mon Sep 17 00:00:00 2001 From: Pavel Shirshov Date: Wed, 4 Apr 2018 13:33:10 -0700 Subject: [PATCH 2/2] Remove deprecated parameter from select() --- lib/src/sai_redis_fdb.cpp | 4 +--- lib/src/sai_redis_generic_get.cpp | 8 +------- lib/src/sai_redis_generic_get_stats.cpp | 4 +--- lib/src/sai_redis_interfacequery.cpp | 4 +--- lib/src/sai_redis_switch.cpp | 4 +--- syncd/syncd.cpp | 4 +--- syncd/tests.cpp | 3 +-- vslib/src/sai_vs_interfacequery.cpp | 4 +--- vslib/src/sai_vs_switch.cpp | 3 +-- 9 files changed, 9 insertions(+), 29 deletions(-) diff --git a/lib/src/sai_redis_fdb.cpp b/lib/src/sai_redis_fdb.cpp index f2c7cdd0e7..4ed7c88919 100644 --- a/lib/src/sai_redis_fdb.cpp +++ b/lib/src/sai_redis_fdb.cpp @@ -44,9 +44,7 @@ sai_status_t internal_redis_flush_fdb_entries( swss::Selectable *sel; - int fd; - - int result = s.select(&sel, &fd, GET_RESPONSE_TIMEOUT); + int result = s.select(&sel, GET_RESPONSE_TIMEOUT); if (result == swss::Select::OBJECT) { diff --git a/lib/src/sai_redis_generic_get.cpp b/lib/src/sai_redis_generic_get.cpp index a36e1005d0..cd3984356e 100644 --- a/lib/src/sai_redis_generic_get.cpp +++ b/lib/src/sai_redis_generic_get.cpp @@ -49,10 +49,6 @@ std::string getSelectResultAsString(int result) switch (result) { - case swss::Select::FD: - res = "FD"; - break; - case swss::Select::ERROR: res = "ERROR"; break; @@ -198,9 +194,7 @@ sai_status_t internal_redis_generic_get( swss::Selectable *sel; - int fd; - - int result = s.select(&sel, &fd, GET_RESPONSE_TIMEOUT); + int result = s.select(&sel, GET_RESPONSE_TIMEOUT); if (result == swss::Select::OBJECT) { diff --git a/lib/src/sai_redis_generic_get_stats.cpp b/lib/src/sai_redis_generic_get_stats.cpp index a5723d2765..6e3f2092fa 100644 --- a/lib/src/sai_redis_generic_get_stats.cpp +++ b/lib/src/sai_redis_generic_get_stats.cpp @@ -143,9 +143,7 @@ sai_status_t internal_redis_generic_get_stats( swss::Selectable *sel; - int fd; - - int result = s.select(&sel, &fd, GET_RESPONSE_TIMEOUT); + int result = s.select(&sel, GET_RESPONSE_TIMEOUT); if (result == swss::Select::OBJECT) { diff --git a/lib/src/sai_redis_interfacequery.cpp b/lib/src/sai_redis_interfacequery.cpp index 4287a7c9d2..365c371448 100644 --- a/lib/src/sai_redis_interfacequery.cpp +++ b/lib/src/sai_redis_interfacequery.cpp @@ -66,9 +66,7 @@ void ntf_thread() { swss::Selectable *sel; - int fd; - - int result = s.select(&sel, &fd); + int result = s.select(&sel); if (sel == &g_redisNotificationTrheadEvent) { diff --git a/lib/src/sai_redis_switch.cpp b/lib/src/sai_redis_switch.cpp index 502635a11a..cec1e71d3d 100644 --- a/lib/src/sai_redis_switch.cpp +++ b/lib/src/sai_redis_switch.cpp @@ -35,9 +35,7 @@ sai_status_t sai_redis_internal_notify_syncd( swss::Selectable *sel; - int fd; - - int result = s.select(&sel, &fd, GET_RESPONSE_TIMEOUT); + int result = s.select(&sel, GET_RESPONSE_TIMEOUT); if (result == swss::Select::OBJECT) { diff --git a/syncd/syncd.cpp b/syncd/syncd.cpp index 5de74e8429..2391935562 100644 --- a/syncd/syncd.cpp +++ b/syncd/syncd.cpp @@ -3343,9 +3343,7 @@ int syncd_main(int argc, char **argv) { swss::Selectable *sel = NULL; - int fd; - - int result = s.select(&sel, &fd); + int result = s.select(&sel); if (sel == restartQuery.get()) { diff --git a/syncd/tests.cpp b/syncd/tests.cpp index 2ec17aeaf8..fadf85f812 100644 --- a/syncd/tests.cpp +++ b/syncd/tests.cpp @@ -156,11 +156,10 @@ void bulk_nhgm_consumer_worker() swss::ConsumerTable c(&db, tableName); swss::Select cs; swss::Selectable *selectcs; - int tmpfd; int ret = 0; cs.addSelectable(&c); - while ((ret = cs.select(&selectcs, &tmpfd)) == swss::Select::OBJECT) + while ((ret = cs.select(&selectcs)) == swss::Select::OBJECT) { swss::KeyOpFieldsValuesTuple kco; c.pop(kco); diff --git a/vslib/src/sai_vs_interfacequery.cpp b/vslib/src/sai_vs_interfacequery.cpp index 329bd821db..bb9efaf900 100644 --- a/vslib/src/sai_vs_interfacequery.cpp +++ b/vslib/src/sai_vs_interfacequery.cpp @@ -177,9 +177,7 @@ void unittestChannelThreadProc() { swss::Selectable *sel; - int fd; - - int result = s.select(&sel, &fd); + int result = s.select(&sel); if (sel == &g_unittestChannelThreadEvent) { diff --git a/vslib/src/sai_vs_switch.cpp b/vslib/src/sai_vs_switch.cpp index 8ca98f4d4c..977927430b 100644 --- a/vslib/src/sai_vs_switch.cpp +++ b/vslib/src/sai_vs_switch.cpp @@ -215,8 +215,7 @@ void linkmsg_thread( { swss::Selectable *temps = NULL; - int tempfd; - int result = s.select(&temps, &tempfd); + int result = s.select(&temps); SWSS_LOG_INFO("select ended: %d", result); }