[openwrt/openwrt] lldpd: LLDPD binds to only specified interfaces

LEDE Commits lede-commits at lists.infradead.org
Thu Feb 8 02:35:53 PST 2024


stintel pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/064b4999ad1f37f4c6ccf95a0404007b990ed0ef

commit 064b4999ad1f37f4c6ccf95a0404007b990ed0ef
Author: Stephen Howell <howels at allthatwemight.be>
AuthorDate: Sat Dec 16 22:41:22 2023 +0000

    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 <howels at allthatwemight.be>
---
 package/network/services/lldpd/files/lldpd.init | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

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"
 




More information about the lede-commits mailing list