| 1 | #!/bin/sh /etc/rc.common |
| 2 | # Copyright (C) 2008-2012 OpenWrt.org |
| 3 | |
| 4 | START=90 |
| 5 | |
| 6 | SERVICE_USE_PID=1 |
| 7 | |
| 8 | start() { |
| 9 | local enable_cdp |
| 10 | local enable_fdp |
| 11 | local enable_sonmp |
| 12 | local enable_edp |
| 13 | local lldp_class |
| 14 | local lldp_location |
| 15 | |
| 16 | config_load 'lldpd' |
| 17 | config_get_bool enable_cdp 'config' 'enable_cdp' 0 |
| 18 | config_get_bool enable_fdp 'config' 'enable_fdp' 0 |
| 19 | config_get_bool enable_sonmp 'config' 'enable_sonmp' 0 |
| 20 | config_get_bool enable_edp 'config' 'enable_edp' 0 |
| 21 | config_get lldp_class 'config' 'lldp_class' |
| 22 | config_get lldp_location 'config' 'lldp_location' |
| 23 | |
| 24 | [ $enable_cdp -gt 0 ] && append args '-c' |
| 25 | [ $enable_fdp -gt 0 ] && append args '-f' |
| 26 | [ $enable_sonmp -gt 0 ] && append args '-s' |
| 27 | [ $enable_edp -gt 0 ] && append args '-e' |
| 28 | |
| 29 | user_exists lldp 121 || user_add lldp 121 129 |
| 30 | group_exists lldp 129 || group_add lldp 129 |
| 31 | |
| 32 | mkdir -p /var/run/lldp |
| 33 | chown lldp:lldp /var/run/lldp |
| 34 | |
| 35 | service_start /usr/sbin/lldpd $args \ |
| 36 | ${lldp_class:+ -M $lldp_class} |
| 37 | |
| 38 | [ -n "$lldp_location" ] && { |
| 39 | sleep 1 |
| 40 | /usr/sbin/lldpctl -L "$lldp_location" > /dev/null 2>&1 |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | stop() { |
| 45 | service_stop /usr/sbin/lldpd |
| 46 | rm -f /var/run/lldpd.socket /var/run/lldpd.pid |
| 47 | } |
| 48 | |