netmode: datamodel vendor extension

This commit is contained in:
Vivek Kumar Dutta 2025-05-02 17:56:29 +05:30
parent 0a7245d2f9
commit 6df1768244
No known key found for this signature in database
GPG key ID: 4E09F5AD8265FD4C
5 changed files with 141 additions and 3 deletions

View file

@ -8,11 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=netmode PKG_NAME:=netmode
PKG_VERSION:=1.0.1 PKG_VERSION:=1.0.2
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPL-2.0-only PKG_LICENSE:=GPL-2.0-only
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/iopsys/bbfdm/bbfdm.mk
define Package/netmode define Package/netmode
CATEGORY:=Utilities CATEGORY:=Utilities
@ -23,11 +24,27 @@ define Package/netmode/description
Network Modes and Utils Network Modes and Utils
endef endef
define Package/$(PKG_NAME)/config
config NETMODE_VENDOR_PREFIX
depends on PACKAGE_netmode
string "Vendor Extension used for netmode datamodel"
default ""
endef
ifeq ($(CONFIG_NETMODE_VENDOR_PREFIX),"")
VENDOR_PREFIX = $(CONFIG_BBF_VENDOR_PREFIX)
else
VENDOR_PREFIX = $(CONFIG_NETMODE_VENDOR_PREFIX)
endif
define Build/Compile define Build/Compile
endef endef
define Package/netmode/install define Package/netmode/install
$(CP) ./files/* $(1)/ $(INSTALL_DIR) $(1)/etc
$(CP) ./files/etc/* $(1)/etc/
$(BBFDM_REGISTER_SERVICES) -v ${VENDOR_PREFIX} ./bbfdm_service.json $(1) $(PKG_NAME)
$(BBFDM_INSTALL_MS_DM) -v ${VENDOR_PREFIX} ./files/datamodel.json $(1) $(PKG_NAME)
endef endef
$(eval $(call BuildPackage,netmode)) $(eval $(call BuildPackage,netmode))

View file

@ -0,0 +1,16 @@
{
"daemon": {
"enable": "1",
"service_name": "netmode",
"unified_daemon": false,
"services": [
{
"parent_dm": "Device.",
"object": "{BBF_VENDOR_PREFIX}NetMode"
}
],
"config": {
"loglevel": "3"
}
}
}

View file

@ -0,0 +1,82 @@
{
"json_plugin_version": 2,
"Device.{BBF_VENDOR_PREFIX}NetMode.": {
"type": "object",
"protocols": [
"cwmp",
"usp"
],
"access": false,
"array": false,
"dependency": "file:/etc/config/netmode",
"Enable": {
"type": "boolean",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "netmode",
"section": {
"name": "global"
},
"option": {
"name": "enabled"
}
}
}
]
},
"Mode": {
"type": "string",
"read": true,
"write": true,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "netmode",
"section": {
"name": "global"
},
"option": {
"name": "mode"
}
}
}
]
},
"SupportedModes": {
"type": "string",
"read": true,
"write": false,
"protocols": [
"cwmp",
"usp"
],
"mapping": [
{
"type": "uci",
"uci": {
"file": "netmode",
"section": {
"name": "global"
},
"list": {
"name": "supported_modes"
}
}
}
]
}
}
}

View file

@ -22,7 +22,6 @@ start_service() {
[ -f /etc/config/netmode ] || return [ -f /etc/config/netmode ] || return
config_load netmode config_load netmode
config_get_bool enabled global enabled '0' config_get_bool enabled global enabled '0'
[ $enabled -eq 0 ] && return [ $enabled -eq 0 ] && return

View file

@ -0,0 +1,24 @@
#!/bin/sh
. /lib/functions.sh
MODEDIR="/etc/netmodes"
[ -f "/etc/config/netmode" ] || exit 0
[ -d "${MODEDIR}" ] || exit 0
set_supported_modes() {
val="$(find "${MODEDIR}" -maxdepth 1 -mindepth 1 -type d -exec basename {} +)"
for mode in ${val}; do
uci add_list netmode.global.supported_modes="${mode}"
done
}
config_load netmode
config_get supported_modes global supported_modes ''
if [ -z "${supported_modes}" ]; then
set_supported_modes
fi
exit 0