Browse Source

lldpd: add option to force EDP

allow EDP support if compiled and add force EDP option

Signed-off-by: Stephen Howell <[email protected]>
Stephen Howell 1 năm trước cách đây
mục cha
commit
d274867c21

+ 2 - 1
package/network/services/lldpd/Makefile

@@ -76,7 +76,8 @@ ifneq ($(CONFIG_LLDPD_WITH_FDP),y)
 	sed -i -e '/fdp/d' $(1)/etc/config/lldpd
 endif
 ifneq ($(CONFIG_LLDPD_WITH_EDP),y)
-	sed -i -e '/edp/d' $(1)/etc/init.d/lldpd $(1)/etc/config/lldpd
+	sed -i -e 's/CONFIG_LLDPD_WITH_EDP=y/CONFIG_LLDPD_WITH_EDP=n/g' $(1)/etc/init.d/lldpd
+	sed -i -e '/edp/d' $(1)/etc/config/lldpd
 endif
 ifneq ($(CONFIG_LLDPD_WITH_SONMP),y)
 	sed -i -e 's/CONFIG_LLDPD_WITH_SONMP=y/CONFIG_LLDPD_WITH_SONMP=n/g' $(1)/etc/init.d/lldpd

+ 19 - 3
package/network/services/lldpd/files/lldpd.init

@@ -5,6 +5,7 @@ START=90
 STOP=01
 
 CONFIG_LLDPD_WITH_CDP=y
+CONFIG_LLDPD_WITH_EDP=y
 CONFIG_LLDPD_WITH_FDP=y
 CONFIG_LLDPD_WITH_LLDPMED=y
 CONFIG_LLDPD_WITH_SNMP=y
@@ -56,7 +57,10 @@ get_config_restart_hash() {
 		config_get_bool v 'config' 'force_cdp'; append _string "$v" ","
 		config_get_bool v 'config' 'force_cdpv2'; append _string "$v" ","
 	fi
-	config_get_bool v 'config' 'enable_edp'; append _string "$v" ","
+	if [ "$CONFIG_LLDPD_WITH_EDP" == "y" ]; then
+		config_get_bool v 'config' 'enable_edp'; append _string "$v" ","
+		config_get_bool v 'config' 'force_edp'; append _string "$v" ","
+	fi
 	if [ "$CONFIG_LLDPD_WITH_FDP" == "y" ]; then
 		config_get_bool v 'config' 'enable_fdp'; append _string "$v" ","
 		config_get_bool v 'config' 'force_fdp'; append _string "$v" ","
@@ -171,6 +175,7 @@ start_service() {
 	local enable_sonmp
 	local force_sonmp
 	local enable_edp
+	local force_edp
 	local lldp_class
 	local lldp_location
 	local lldp_no_version
@@ -196,7 +201,10 @@ start_service() {
 		config_get_bool enable_sonmp 'config' 'enable_sonmp' 0
 		config_get_bool force_sonmp 'config' 'force_sonmp' 0
 	fi
-	config_get_bool enable_edp 'config' 'enable_edp' 0
+	if [ "$CONFIG_LLDPD_WITH_EDP" == "y" ]; then
+		config_get_bool enable_edp 'config' 'enable_edp' 0
+		config_get_bool force_edp 'config' 'force_edp' 0
+	fi
 	config_get lldp_class 'config' 'lldp_class'
 	config_get lldp_location 'config' 'lldp_location'
 	config_get_bool lldp_no_version 'config' 'lldp_no_version' 0
@@ -271,7 +279,15 @@ start_service() {
 		fi
 	fi
 
-	[ $enable_edp -gt 0 ] && procd_append_param command '-e'
+	if [ "$CONFIG_LLDPD_WITH_EDP" == "y" ] && [ $enable_edp -gt 0 ]; then
+		if [ $force_edp -gt 0 ]; then
+			# EDP enbled and forced
+			procd_append_param command '-ee'
+		else
+			# EDP enbled
+			procd_append_param command '-e'
+		fi
+	fi
 
 	[ $readonly_mode -gt 0 ] && procd_append_param command '-r'
 	[ $lldp_no_version -gt 0 ] && procd_append_param commanpackage/network/services/lldpd/Makefile package/network/services/lldpd/files/lldpd.initd '-k'