mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			702 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			702 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh /etc/rc.common
 | |
| START=80
 | |
| 
 | |
| check_relay() {
 | |
| 	local cfg="$1"
 | |
| 
 | |
| 	config_get_bool enabled "$cfg" enabled 1
 | |
| 	[ "$enabled" -gt 0 ] || return
 | |
| 
 | |
| 	config_get dev1 "$cfg" dev1
 | |
| 	config_get dev2 "$cfg" dev2
 | |
| 
 | |
| 	[ -d "/sys/kernel/debug/trelay/${dev1}-${dev2}" ] && return
 | |
| 	[ -d "/sys/class/net/${dev1}" -a -d "/sys/class/net/${dev2}" ] || return
 | |
| 
 | |
| 	ip link set dev "$dev1" up
 | |
| 	ip link set dev "$dev2" up
 | |
| 	echo "${dev1}-${dev2},${dev1},${dev2}" > /sys/kernel/debug/trelay/add
 | |
| }
 | |
| 
 | |
| start() {
 | |
| 	config_load trelay
 | |
| 	config_foreach check_relay trelay
 | |
| 	touch /var/run/trelay.active
 | |
| }
 | |
| 
 | |
| stop() {
 | |
| 	rm -f /var/run/trelay.active
 | |
| 	for relay in /sys/kernel/debug/trelay/*; do
 | |
| 		[ -d "$relay" ] && echo > "$relay/remove"
 | |
| 	done
 | |
| }
 |