From 36de4ee5a292f8d45747104fa2fda4f7e92c38f0 Mon Sep 17 00:00:00 2001 From: Amin Ben Romdhane Date: Thu, 23 May 2024 14:04:35 +0200 Subject: [PATCH] bbfdm: bbf.config with C code --- bbfdm/Config_bbfdm.in | 2 ++ bbfdm/Makefile | 48 ++++++++++++++++++++++++------ bbfdm/bbf_configmngr.in | 19 ++++++++++++ bbfdm/files/etc/init.d/bbf_configd | 15 ++++++++++ 4 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 bbfdm/bbf_configmngr.in create mode 100644 bbfdm/files/etc/init.d/bbf_configd diff --git a/bbfdm/Config_bbfdm.in b/bbfdm/Config_bbfdm.in index a0219009e..e753ee40f 100644 --- a/bbfdm/Config_bbfdm.in +++ b/bbfdm/Config_bbfdm.in @@ -1,3 +1,4 @@ +if PACKAGE_libbbfdm config BBF_VENDOR_LIST string "Vendor List" default "iopsys" @@ -13,3 +14,4 @@ config BBF_OBFUSCATION_KEY config BBF_MAX_OBJECT_INSTANCES int "Maximum number of instances per object" default 255 +endif diff --git a/bbfdm/Makefile b/bbfdm/Makefile index a91dcbaba..a9f903e64 100644 --- a/bbfdm/Makefile +++ b/bbfdm/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bbfdm -PKG_VERSION:=1.8.27 +PKG_VERSION:=1.9.0 USE_LOCAL:=0 ifneq ($(USE_LOCAL),1) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/bbfdm.git -PKG_SOURCE_VERSION:=0d16ce491afd3d31c36aa4fa752d18c730e768ba +PKG_SOURCE_VERSION:=40d22bedaf26fac6c91d6c0ec456a0fc37872c8d PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_MIRROR_HASH:=skip endif @@ -38,6 +38,7 @@ define Package/libbbfdm SUBMENU:=TRx69 TITLE:=Library for broadband forum data model support DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libbbfdm-api +libopenssl + MENU:=1 endef define Package/bbfdmd @@ -45,19 +46,36 @@ define Package/bbfdmd CATEGORY:=Utilities SUBMENU:=TRx69 TITLE:=Datamodel ubus backend - DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libbbfdm-api +libbbfdm +jq + DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libbbfdm-api +libbbfdm +jq +bbf_configmngr +endef + +define Package/bbf_configmngr + SECTION:=utils + CATEGORY:=Utilities + SUBMENU:=TRx69 + TITLE:= BBF Config Manager + DEPENDS:=+libuci +libubox +libubus +libblobmsg-json + MENU:=1 endef define Package/libbbfdm/config source "$(SOURCE)/Config_bbfdm.in" endef +define Package/bbf_configmngr/config + source "$(SOURCE)/bbf_configmngr.in" +endef + define Package/libbbfdm-api/description Library contains the API(UCI, UBUS, JSON, CLI and Browse) of libbbfdm endef define Package/libbbfdm/description - Library contains the data model tree. It includes TR181, TR143 data models + Library contains the data model tree, It includes basic TR181 nodes. +endef + +define Package/bbf_configmngr/description + Daemon for handling bbf reload services via ubus bbf.config endef ifeq ($(USE_LOCAL),1) @@ -83,11 +101,11 @@ define Package/libbbfdm-api/install $(INSTALL_DIR) $(1)/lib $(CP) $(PKG_BUILD_DIR)/libbbfdm-api/libbbfdm-api.so $(1)/lib/ $(INSTALL_DIR) $(1)/usr/libexec/rpcd - $(CP) $(PKG_BUILD_DIR)/libbbfdm-api/scripts/bbf.secure $(1)/usr/libexec/rpcd/bbf.secure - $(CP) $(PKG_BUILD_DIR)/libbbfdm-api/scripts/bbf.config $(1)/usr/libexec/rpcd/bbf.config + $(CP) $(PKG_BUILD_DIR)/utilities/files/usr/libexec/rpcd/bbf.secure $(1)/usr/libexec/rpcd/bbf.secure + $(CP) $(PKG_BUILD_DIR)/utilities/files/usr/libexec/rpcd/bbf.diag $(1)/usr/libexec/rpcd/bbf.diag $(INSTALL_DIR) $(1)/etc/bbfdm - echo "$(CONFIG_BBF_OBFUSCATION_KEY)" > $(1)/etc/bbfdm/.secure_hash $(INSTALL_DIR) $(1)/etc/bbfdm/certificates + echo "$(CONFIG_BBF_OBFUSCATION_KEY)" > $(1)/etc/bbfdm/.secure_hash endef define Package/libbbfdm/install @@ -110,9 +128,7 @@ ifeq ($(findstring iopsys,$(CONFIG_BBF_VENDOR_LIST)),iopsys) $(BBFDM_INSTALL_CORE_PLUGIN) $(PKG_BUILD_DIR)/libbbfdm/dmtree/vendor/iopsys/libbbfdm_iopsys_ext.so $(1) endif $(INSTALL_DIR) $(1)/usr/share/bbfdm/scripts/ - $(INSTALL_DIR) $(1)/usr/libexec/rpcd $(CP) $(PKG_BUILD_DIR)/libbbfdm/scripts/* $(1)/usr/share/bbfdm/scripts/ - $(LN) /usr/share/bbfdm/scripts/bbf.diag $(1)/usr/libexec/rpcd/bbf.diag endef define Package/libbbfdm/prerm @@ -135,6 +151,19 @@ define Package/bbfdmd/install $(INSTALL_BIN) ./files/etc/hotplug.d/iface/85-bbfdm-sysctl $(1)/etc/hotplug.d/iface/85-bbfdm-sysctl endef +define Package/bbf_configmngr/install + $(INSTALL_DIR) $(1)/etc/init.d +ifeq ($(CONFIG_BBF_CONFIGMNGR_C_BACKEND),y) + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/utilities/bbf_configd $(1)/usr/sbin/ + $(INSTALL_BIN) ./files/etc/init.d/bbf_configd $(1)/etc/init.d/bbf_configd +endif +ifeq ($(CONFIG_BBF_CONFIGMNGR_SCRIPT_BACKEND),y) + $(INSTALL_DIR) $(1)/usr/libexec/rpcd + $(CP) $(PKG_BUILD_DIR)/utilities/files/usr/libexec/rpcd/bbf.config $(1)/usr/libexec/rpcd/bbf.config +endif +endef + define Build/InstallDev $(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/include @@ -143,6 +172,7 @@ define Build/InstallDev $(INSTALL_DATA) $(PKG_BUILD_DIR)/libbbfdm-api/include/*.h $(1)/usr/include/ endef +$(eval $(call BuildPackage,bbf_configmngr)) $(eval $(call BuildPackage,libbbfdm-api)) $(eval $(call BuildPackage,libbbfdm)) $(eval $(call BuildPackage,bbfdmd)) diff --git a/bbfdm/bbf_configmngr.in b/bbfdm/bbf_configmngr.in new file mode 100644 index 000000000..d7aad11f6 --- /dev/null +++ b/bbfdm/bbf_configmngr.in @@ -0,0 +1,19 @@ +if PACKAGE_bbf_configmngr +choice + prompt "Select backend daemon for bbf.config" + default BBF_CONFIGMNGR_C_BACKEND + help + Select which backend daemon should be used for ubus bbf.config + +config BBF_CONFIGMNGR_SCRIPT_BACKEND + bool "Use shell script backend" + help + Enable this option to use shell script as the backend for bbf.config. This can be useful for quick and easy scripting of configuration tasks. + +config BBF_CONFIGMNGR_C_BACKEND + bool "Use C code backend" + help + Enable this option to use a C code implementation as the backend for bbf.config. This option is generally preferred for performance-critical tasks and scenarios requiring more robust and efficient handling. + +endchoice +endif diff --git a/bbfdm/files/etc/init.d/bbf_configd b/bbfdm/files/etc/init.d/bbf_configd new file mode 100644 index 000000000..9ba475e20 --- /dev/null +++ b/bbfdm/files/etc/init.d/bbf_configd @@ -0,0 +1,15 @@ +#!/bin/sh /etc/rc.common + +START=64 +STOP=10 + +USE_PROCD=1 +PROG=/usr/sbin/bbf_configd + +start_service() +{ + procd_open_instance "bbf_configd" + procd_set_param command ${PROG} + procd_set_param respawn + procd_close_instance "bbf_configd" +}