START=90
STOP=01
+CONFIG_LLDPD_WITH_LLDPMED=y
+
USE_PROCD=1
LLDPDBIN=/usr/sbin/lldpd
LLDPCLI=/usr/sbin/lldpcli
config_get v 'config' 'filter'; append _string "$v" ","
config_get_bool v 'config' 'readonly_mode'; append _string "$v" ","
config_get_bool v 'config' 'lldp_no_version'; append _string "$v" ","
+ if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then
+ config_get_bool v 'config' 'lldpmed_no_inventory'; append _string "$v" ","
+ fi
config_get_bool v 'config' 'enable_lldp' 1; append _string "$v" ","
config_get_bool v 'config' 'enable_cdp'; append _string "$v" ","
config_get_bool v 'config' 'enable_edp'; append _string "$v" ","
local lldp_syscapabilities
config_get lldp_syscapabilities 'config' 'lldp_syscapabilities'
+ if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then
+ local lldpmed_fast_start
+ config_get_bool lldpmed_fast_start 'config' 'lldpmed_fast_start' 0
+
+ local lldpmed_fast_start_tx_interval
+ config_get lldpmed_fast_start_tx_interval 'config' 'lldpmed_fast_start_tx_interval' 0
+ fi
+
# Clear out the config file first
echo -n > "$LLDPD_CONF"
[ -n "$ifnames" ] && echo "configure system interface pattern" "$ifnames" >> "$LLDPD_CONF"
[ -n "$lldp_hostname" ] && echo "configure system hostname" "\"$lldp_hostname\"" >> "$LLDPD_CONF"
[ -n "$lldp_mgmt_ip" ] && echo "configure system ip management pattern" "\"$lldp_mgmt_ip\"" >> "$LLDPD_CONF"
[ -n "$lldp_syscapabilities" ] && echo "configure system capabilities enabled" "\"$lldp_syscapabilities\"" >> "$LLDPD_CONF"
+ if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ] && [ $lldpmed_fast_start -gt 0 ]; then
+ if [ $lldpmed_fast_start_tx_interval -gt 0 ]; then
+ echo "configure med fast-start tx-interval" "\"$lldpmed_fast_start_tx_interval\"" >> "$LLDPD_CONF"
+ else
+ echo "configure med fast-start" "enable" >> "$LLDPD_CONF"
+ fi
+ fi
+
# Since lldpd's sysconfdir is /tmp, we'll symlink /etc/lldpd.d to /tmp/$LLDPD_CONFS_DIR
[ -e $LLDPD_CONFS_DIR ] || ln -s /etc/lldpd.d $LLDPD_CONFS_DIR
local lldp_class
local lldp_location
local lldp_no_version
+ local lldpmed_no_inventory
local readonly_mode
local agentxsocket
local filter
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
+ if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then
+ config_get_bool lldpmed_no_inventory 'config' 'lldpmed_no_inventory' 0
+ fi
config_get_bool readonly_mode 'config' 'readonly_mode' 0
config_get agentxsocket 'config' 'agentxsocket'
config_get filter 'config' 'filter' 15
[ $enable_edp -gt 0 ] && procd_append_param command '-e'
[ $readonly_mode -gt 0 ] && procd_append_param command '-r'
[ $lldp_no_version -gt 0 ] && procd_append_param command '-k'
+ [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ] && [ $lldpmed_no_inventory -gt 0 ] && procd_append_param command '-i'
[ -n "$lldp_class" ] && procd_append_param command -M "$lldp_class"
[ -n "$agentxsocket" ] && procd_append_param command -x -X "$agentxsocket"
[ -n "$filter" ] && procd_append_param command -H "$filter"
restart
return 0
fi
-
+
$LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF
pause
unconfigure lldp custom-tlv
unconfigure system hostname
unconfigure system ip management pattern
EOF
+ if [ "$CONFIG_LLDPD_WITH_LLDPMED" == "y" ]; then
+ $LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF
+ unconfigure med fast-start
+ EOF
+ fi
# Rewrite lldpd.conf
# If something changed it should be included by the lldpcli call
write_lldpd_conf