blob: e705275e3a8e51b0ad3dd9c599f8452bb8fe1afd [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh /etc/rc.common
2START=80
3
4check_relay() {
5 local cfg="$1"
6
7 config_get_bool enabled "$cfg" enabled 1
8 [ "$enabled" -gt 0 ] || return
9
10 config_get dev1 "$cfg" dev1
11 config_get dev2 "$cfg" dev2
12
13 [ -d "/sys/kernel/debug/trelay/${dev1}-${dev2}" ] && return
14 [ -d "/sys/class/net/${dev1}" -a -d "/sys/class/net/${dev2}" ] || return
15
16 ip link set dev "$dev1" up
17 ip link set dev "$dev2" up
18 echo "${dev1}-${dev2},${dev1},${dev2}" > /sys/kernel/debug/trelay/add
19}
20
21start() {
22 config_load trelay
23 config_foreach check_relay trelay
24 touch /var/run/trelay.active
25}
26
27stop() {
28 rm -f /var/run/trelay.active
29 for relay in /sys/kernel/debug/trelay/*; do
30 [ -d "$relay" ] && echo > "$relay/remove"
31 done
32}