obuspa: Support to DHCP on-boarding via Option 125

This commit is contained in:
Suvendhu Hansa 2025-03-12 03:35:28 +00:00 committed by IOPSYS Dev
parent e945226956
commit f2d4b6ff7d
No known key found for this signature in database
3 changed files with 41 additions and 0 deletions

View file

@ -133,6 +133,7 @@ define Package/obuspa/install
$(INSTALL_BIN) ./files/etc/uci-defaults/obuspa-set-dhcp-option $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/92-obuspa_firewall $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/93-obuspa_mdns_adv $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/uci-defaults/94-obuspa_set_credential $(1)/etc/uci-defaults/
$(INSTALL_BIN) ./files/etc/firewall.usp $(1)/etc/
$(INSTALL_BIN) ./files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user $(1)/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user
ifeq ($(CONFIG_OBUSPA_CWMP_DATAMODEL_SUPPORT),y)

View file

@ -0,0 +1,29 @@
#!/bin/sh
. /lib/functions.sh
# Get Manufacturer OUI.
oui=$(db -q get device.deviceinfo.ManufacturerOUI)
oui=$(echo "${oui}" | tr 'a-f' 'A-F')
# Get system serial number.
serial=$(db -q get device.deviceinfo.SerialNumber)
username="${oui}-${serial}"
password="iopsys"
# Get userid values
config_load obuspa
config_get user global username ""
config_get pass global password ""
# Only set if they are empty or not same
if [ -z "${user}" ] || [ "${user}" != "${username}" ]; then
uci -q set obuspa.global.username="${username}"
fi
if [ -z "${pass}" ] || [ "${pass}" != "${password}" ]; then
uci -q set obuspa.global.password="${password}"
fi
# No need for commit here, it is done by uci_apply_defaults().

View file

@ -391,10 +391,15 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then
uci_change=1
else
if [ -z "${dhcp_mqtt}" ]; then
user="$(uci -q get obuspa.global.username)"
pass="$(uci -q get obuspa.global.password)"
sec=$(uci -q add obuspa mqtt)
uci -q rename obuspa."${sec}"='dhcpmqtt'
dhcp_mqtt="dhcpmqtt"
uci -q set obuspa.$dhcp_mqtt.Enable='1'
uci -q set obuspa.$dhcp_mqtt.Username="${user}"
uci -q set obuspa.$dhcp_mqtt.Password="${pass}"
fi
uci -q set obuspa.$dhcp_mqtt.BrokerAddress="${ip}"
@ -476,6 +481,9 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then
if [ -n "${offered_proto}" ]; then
if [ "${offered_proto}" == "MQTT" ]; then
user="$(uci -q get obuspa.global.username)"
pass="$(uci -q get obuspa.global.password)"
uci -q set obuspa.dhcpcontroller.Topic="${topic}"
uci -q set obuspa.dhcpcontroller.mqtt='dhcpmqtt'
@ -486,6 +494,9 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then
uci -q set obuspa.dhcpmqtt.TransportProtocol="${mtp_encrypt}"
uci -q set obuspa.dhcpmqtt.Enable='1'
uci -q set obuspa.dhcpmqtt.ProtocolVersion='5.0'
uci -q set obuspa.dhcpmqtt.Username="${user}"
uci -q set obuspa.dhcpmqtt.Password="${pass}"
agent_topic=$(get_agent_topic)
sec=$(uci -q add obuspa mtp)