From: Stephen Howell Date: Sat, 16 Dec 2023 22:41:22 +0000 (+0000) Subject: lldpd: LLDPD binds to only specified interfaces X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=064b4999ad1f37f4c6ccf95a0404007b990ed0ef;p=openwrt%2Fopenwrt.git lldpd: LLDPD binds to only specified interfaces Bind to the configured system interfaces only. Switchport interfaces are no longer ignored and uci interface values for LLDPD are honored. Signed-off-by: Stephen Howell --- diff --git a/package/network/services/lldpd/files/lldpd.init b/package/network/services/lldpd/files/lldpd.init index a52e6e0ec4..411fa0c652 100644 --- a/package/network/services/lldpd/files/lldpd.init +++ b/package/network/services/lldpd/files/lldpd.init @@ -33,6 +33,7 @@ get_config_restart_hash() { config_get v 'config' 'lldp_class'; append _string "$v" "," config_get v 'config' 'agentxsocket'; append _string "$v" "," + config_get v 'config' 'cid_interface'; append _string "$v" "," config_get_bool v 'config' 'readonly_mode'; append _string "$v" "," config_get_bool v 'config' 'enable_lldp' 1; append _string "$v" "," config_get_bool v 'config' 'enable_cdp'; append _string "$v" "," @@ -44,6 +45,21 @@ get_config_restart_hash() { export -n "$var=$_hash" } +get_config_cid_ifaces() { + local _ifaces + config_get _ifaces 'config' 'cid_interface' + + local _iface _ifnames="" + for _iface in $_ifaces; do + local _ifname="" + if network_get_device _ifname "$_iface" || [ -e "/sys/class/net/$_iface" ]; then + append _ifnames "${_ifname:-$_iface}" "," + fi + done + + export -n "${1}=$_ifnames" +} + write_lldpd_conf() { local lldp_description @@ -122,6 +138,11 @@ start_service() { [ -n "$lldp_class" ] && procd_append_param command -M "$lldp_class" [ -n "$agentxsocket" ] && procd_append_param command -x -X "$agentxsocket" + # ChassisID interfaces + local ifnames + get_config_cid_ifaces ifnames + [ -n "$ifnames" ] && procd_append_param command -C "$ifnames" + # Overwrite default configuration locations processed by lldpcli at start procd_append_param command -O "$LLDPD_CONF"