mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-24 19:14:05 +08:00
Compare commits
1 Commits
db_remove
...
device_tim
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68595e8bf8 |
@@ -34,7 +34,7 @@ define Package/libbbfdm/default
|
||||
SUBMENU:=TRx69
|
||||
TITLE:=Library for broadband forum data model support
|
||||
DEPENDS:=+libuci +libubox +libubus +libblobmsg-json +libjson-c +libcurl +libbbfdm-api \
|
||||
+BBF_TR471:obudpst
|
||||
+BBF_TR471:obudpst +ntpd
|
||||
endef
|
||||
|
||||
define Package/libbbfdm
|
||||
@@ -171,10 +171,13 @@ define Package/libbbfdm-api/install
|
||||
endef
|
||||
|
||||
define Package/libbbfdm/default/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_DIR) $(1)/etc/config
|
||||
$(INSTALL_DIR) $(1)/lib
|
||||
$(INSTALL_DIR) $(1)/etc/bbfdm
|
||||
$(INSTALL_DIR) $(1)/etc/bbfdm/dmmap
|
||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(CP) $(PKG_BUILD_DIR)/libbbfdm/libbbfdm.so $(1)/lib/
|
||||
$(INSTALL_DATA) ./files/lib/upgrade/keep.d/bbf $(1)/lib/upgrade/keep.d/bbf
|
||||
ifeq ($(CONFIG_BBF_TR143),y)
|
||||
@@ -182,6 +185,10 @@ ifeq ($(CONFIG_BBF_TR143),y)
|
||||
$(INSTALL_DIR) $(1)/usr/libexec/rpcd
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/libbbfdm/scripts/* $(1)/usr/share/bbfdm
|
||||
$(LN) /usr/share/bbfdm/bbf.diag $(1)/usr/libexec/rpcd/bbf.diag
|
||||
$(INSTALL_CONF) ./files/etc/config/ntp $(1)/etc/config/ntp
|
||||
$(INSTALL_BIN) ./files/etc/uci-defaults/96-system-ntp-migrate $(1)/etc/uci-defaults/96-system-ntp-migrate
|
||||
$(INSTALL_BIN) ./files/etc/init.d/ntp $(1)/etc/init.d/ntp
|
||||
$(LN) /usr/share/bbfdm/ntpstat $(1)/usr/libexec/rpcd/ntpstat
|
||||
endif
|
||||
ifeq ($(CONFIG_BBFDM_ENABLE_JSON_PLUGIN),y)
|
||||
$(INSTALL_DIR) $(1)/etc/bbfdm/json
|
||||
|
||||
28
bbfdm/files/etc/config/ntp
Normal file
28
bbfdm/files/etc/config/ntp
Normal file
@@ -0,0 +1,28 @@
|
||||
config global 'global'
|
||||
option enable '1'
|
||||
|
||||
config timeclient 'client'
|
||||
option enable_client '1'
|
||||
option iburst '1'
|
||||
option version '4'
|
||||
option peer '0'
|
||||
option minpoll '6'
|
||||
option maxpoll '10'
|
||||
option client_mode 'Unicast'
|
||||
option server 'ntp1.sth.netnod.se,ntp1.gbg.netnod.se'
|
||||
|
||||
config timeclient 'dhcp_driven'
|
||||
option enable_client '0'
|
||||
option iburst '1'
|
||||
option version '4'
|
||||
option peer '0'
|
||||
option minpoll '6'
|
||||
option maxpoll '10'
|
||||
option client_mode 'Unicast'
|
||||
option client_interface 'wan'
|
||||
option client_alias 'DHCP-driven'
|
||||
|
||||
config timeserver 'server'
|
||||
option enable_server '1'
|
||||
option server_mode 'Unicast'
|
||||
option ttl '255'
|
||||
213
bbfdm/files/etc/init.d/ntp
Executable file
213
bbfdm/files/etc/init.d/ntp
Executable file
@@ -0,0 +1,213 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
|
||||
START=65
|
||||
STOP=65
|
||||
|
||||
USE_PROCD=1
|
||||
PROG=/sbin/ntpd
|
||||
HOTPLUG_HELPER=/usr/sbin/ntpd.hotplug-helper
|
||||
|
||||
config_file=/var/etc/ntpd.conf
|
||||
|
||||
trunc() {
|
||||
echo -n "" > $config_file
|
||||
}
|
||||
|
||||
emit() {
|
||||
echo -e "$@" >> $config_file
|
||||
}
|
||||
|
||||
validate_client_section() {
|
||||
uci_validate_section ntp timeclient $1 \
|
||||
'enable_client:bool:1' 'iburst:bool:1'\
|
||||
'version:uinteger:4' 'peer:bool:0' \
|
||||
'minpoll:uinteger:6' 'maxpoll:uinteger:10' \
|
||||
'client_mode:string:Unicast' 'server:string'
|
||||
}
|
||||
|
||||
validate_global_section() {
|
||||
uci_validate_section ntp global global \
|
||||
'enable:bool:1'
|
||||
}
|
||||
|
||||
validate_server_section() {
|
||||
uci_validate_section ntp timeserver server \
|
||||
'enable_server:bool:1' 'server_mode:string:Unicast'\
|
||||
'ttl:uinteger:255' 'interface:string'
|
||||
}
|
||||
|
||||
start_ntpd_instance() {
|
||||
local enable
|
||||
validate_global_section || {
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ "$enable" != 1 ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
enable_client_sec=$(uci -q show ntp | grep enable_client=\'1\' | cut -d'.' -f 2)
|
||||
local enable_client iburst version peer minpoll maxpoll client_mode server
|
||||
if [ -n $enable_client_sec ]; then
|
||||
validate_client_section $enable_client_sec || {
|
||||
return 1
|
||||
}
|
||||
else
|
||||
enable_client=0
|
||||
fi
|
||||
|
||||
local enable_server server_mode ttl interface
|
||||
validate_server_section || {
|
||||
return 1
|
||||
}
|
||||
|
||||
[ "$enable_client" = 0 ] && [ "$enable_server" = 0 ] && return
|
||||
|
||||
mkdir -p "$(dirname "$config_file")"
|
||||
|
||||
trunc
|
||||
emit "driftfile /var/lib/ntp/ntp.drift\n"
|
||||
|
||||
str1="restrict -4 default noserve"
|
||||
str2="restrict -6 default noserve"
|
||||
if [ "$enable_server" != 0 ]; then
|
||||
str1="restrict default limited kod nomodify notrap"
|
||||
str2="restrict -6 default limited kod nomodify notrap"
|
||||
fi
|
||||
|
||||
if [ "$enable_client" == 0 ] || [ "$peer" == 0 ]; then
|
||||
str1="${str1} nopeer"
|
||||
str2="${str2} nopeer"
|
||||
fi
|
||||
|
||||
emit "${str1}"
|
||||
emit "${str2}"
|
||||
emit "restrict source noquery"
|
||||
|
||||
emit "\n# No limits for local monitoring"
|
||||
emit "restrict 127.0.0.1"
|
||||
emit "restrict -6 ::1\n"
|
||||
|
||||
if [ "$enable_client" != 0 ]; then
|
||||
if [ "$client_mode" = "Broadcast" ]; then
|
||||
emit "broadcastclient\n"
|
||||
elif [ "$client_mode" = "Multicast" ]; then
|
||||
emit "multicastclient 224.0.1.1 minpoll $minpoll maxpoll $maxpoll version $version\n"
|
||||
elif [ "$client_mode" = "Manycast" ]; then
|
||||
emit "manycastclient 224.0.1.1 minpoll $minpoll maxpoll $maxpoll version $version\n"
|
||||
else
|
||||
for i in ${server//,/ }
|
||||
do
|
||||
str="server $i minpoll $minpoll maxpoll $maxpoll version $version"
|
||||
if [ "$iburst" != 0 ]; then
|
||||
str="${str} iburst"
|
||||
fi
|
||||
emit "${str}"
|
||||
done
|
||||
|
||||
if [ "$peer" != 0 ]; then
|
||||
for i in ${server//,/ }
|
||||
do
|
||||
str="peer $i minpoll $minpoll maxpoll $maxpoll version $version"
|
||||
if [ "$iburst" != 0 ]; then
|
||||
str="${str} iburst"
|
||||
fi
|
||||
emit "${str}"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
emit ""
|
||||
if [ "$enable_server" != 0 ]; then
|
||||
if [ "$server_mode" = "Broadcast" ] && [ -n "$interface" ]; then
|
||||
ip=$(ubus call network.interface dump | jsonfilter -e "@.interface[@.interface='$interface']['ipv4-address'][0]['address']")
|
||||
mask=$(ubus call network.interface dump | jsonfilter -e "@.interface[@.interface='$interface']['ipv4-address'][0]['mask']")
|
||||
|
||||
if [ -n "$ip" ] && [ -n "$mask" ]; then
|
||||
pref=$(( $mask / 8 ))
|
||||
bcast_ip=$(echo $ip | cut -d. -f1-$pref)
|
||||
for i in `seq $pref 3`; do
|
||||
bcast_ip=$bcast_ip".255"
|
||||
done
|
||||
|
||||
str="broadcast $bcast_ip"
|
||||
if [ -n "$ttl" ]; then
|
||||
str="${str} ttl ${ttl}"
|
||||
fi
|
||||
|
||||
emit "${str}"
|
||||
fi
|
||||
elif [ "$server_mode" = "Multicast" ]; then
|
||||
str="broadcast 224.0.1.1"
|
||||
if [ -n "$ttl" ]; then
|
||||
str="${str} ttl ${ttl}"
|
||||
fi
|
||||
emit "${str}"
|
||||
elif [ "$server_mode" = "Manycast" ]; then
|
||||
emit "manycastserver 224.0.1.1"
|
||||
fi
|
||||
|
||||
emit ""
|
||||
if [ -n "$interface" ]; then
|
||||
local loopback=$(ubus call network.interface dump | jsonfilter -e "@.interface[@.interface='loopback']['device']")
|
||||
local l3_intf=$(ubus call network.interface dump | jsonfilter -e "@.interface[@.interface='$interface']['device']")
|
||||
local saw_lo=
|
||||
emit "interface listen $l3_intf"
|
||||
[ "$l3_intf" = "$loopback" ] && saw_lo=1
|
||||
[ -z "$saw_lo" ] && emit "interface listen $loopback"
|
||||
emit ""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -d "/etc/ntpd.d" ]; then
|
||||
local entry
|
||||
for entry in "/etc/ntpd.d"/*.conf; do
|
||||
emit "includefile ${entry}\n"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -d "/tmp/ntpd.d" ]; then
|
||||
local entry
|
||||
for entry in "/tmp/ntpd.d"/*.conf; do
|
||||
emit "includefile ${entry}\n"
|
||||
done
|
||||
fi
|
||||
|
||||
mkdir -p /var/lib/ntp
|
||||
chown -R ntp:ntp /var/lib/ntp
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param command $PROG -g -u ntp:ntp -p /var/run/ntpd.pid -n \
|
||||
-c $config_file
|
||||
procd_close_instance
|
||||
|
||||
procd_open_instance
|
||||
procd_set_param command $HOTPLUG_HELPER
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
start_service() {
|
||||
start_ntpd_instance
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "ntp"
|
||||
|
||||
local enable_server server_mode ttl interface
|
||||
validate_server_section || {
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ "$enable_server" != 0 ] && [ "$server_mode" = "Broadcast" ] && [ -n "$interface" ]; then
|
||||
procd_open_trigger
|
||||
procd_add_interface_trigger "interface.*.up" $interface /etc/init.d/ntp restart
|
||||
procd_close_trigger
|
||||
fi
|
||||
}
|
||||
75
bbfdm/files/etc/uci-defaults/96-system-ntp-migrate
Normal file
75
bbfdm/files/etc/uci-defaults/96-system-ntp-migrate
Normal file
@@ -0,0 +1,75 @@
|
||||
#!/bin/sh
|
||||
|
||||
ntpd_config=$(uci -q get system.ntp)
|
||||
if [ -n "${ntpd_config}" ]; then
|
||||
rm -rf /etc/config/ntp
|
||||
touch /etc/config/ntp
|
||||
|
||||
global_section=$(uci -q add ntp global)
|
||||
uci -q rename ntp."${global_section}"="global"
|
||||
uci -q set ntp.global.enable="1"
|
||||
|
||||
client_section=$(uci -q add ntp timeclient)
|
||||
uci -q rename ntp."${client_section}"="client"
|
||||
|
||||
client_enable=$(uci -q get system.ntp.enabled)
|
||||
if [ $client_enable -eq 0 ]; then
|
||||
uci -q set ntp.client.enable_client="0"
|
||||
else
|
||||
uci -q set ntp.client.enable_client="1"
|
||||
fi
|
||||
|
||||
uci -q set ntp.client.iburst="1"
|
||||
uci -q set ntp.client.version="4"
|
||||
uci -q set ntp.client.peer="0"
|
||||
uci -q set ntp.client.minpoll="6"
|
||||
uci -q set ntp.client.maxpoll="10"
|
||||
uci -q set ntp.client.client_mode="Unicast"
|
||||
|
||||
servers=$(uci -q get system.ntp.server)
|
||||
serv=""
|
||||
for server in $servers; do
|
||||
if [ -z "${serv}" ]; then
|
||||
serv="${server}"
|
||||
else
|
||||
serv="${serv},${server}"
|
||||
fi
|
||||
done
|
||||
|
||||
uci -q set ntp.client.server=${serv}
|
||||
|
||||
client_section=$(uci -q add ntp timeclient)
|
||||
uci -q rename ntp."${client_section}"="dhcp_driven"
|
||||
|
||||
uci -q set ntp.dhcp_driven.enable_client="0"
|
||||
uci -q set ntp.dhcp_driven.iburst="1"
|
||||
uci -q set ntp.dhcp_driven.version="4"
|
||||
uci -q set ntp.dhcp_driven.peer="0"
|
||||
uci -q set ntp.dhcp_driven.minpoll="6"
|
||||
uci -q set ntp.dhcp_driven.maxpoll="10"
|
||||
uci -q set ntp.dhcp_driven.client_mode="Unicast"
|
||||
uci -q set ntp.dhcp_driven.client_interface="wan"
|
||||
uci -q set ntp.dhcp_driven.client_alias="DHCP-driven"
|
||||
|
||||
server_section=$(uci -q add ntp timeserver)
|
||||
uci -q rename ntp."${server_section}"="server"
|
||||
|
||||
server_enable=$(uci -q get system.ntp.enable_server)
|
||||
if [ $server_enable -eq 1 ]; then
|
||||
uci -q set ntp.server.enable_server="1"
|
||||
else
|
||||
uci -q set ntp.server.enable_server="0"
|
||||
fi
|
||||
|
||||
uci -q set ntp.server.server_mode="Unicast"
|
||||
uci -q set ntp.server.ttl="255"
|
||||
|
||||
uci -q commit ntp
|
||||
|
||||
uci -q batch <<-EOT
|
||||
delete system.ntp
|
||||
commit system
|
||||
EOT
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user