J'ai tenté un remplacement à base de Turris ces derniers temps, globalement ça marche en adaptant un peu la config openwrt. J'ai eu un petit soucis avec le script de priorité de vlan, car le PATH était différent sur rc.local et il executait les commandes ip avec la version busybox à /sbin/ip qui ne supporte pas l'argument type.
2019-02-21 12:25:45 emerg kresd[2278]: + ip link set eth1.832 type vlan egress 0:0
2019-02-21 12:25:45 emerg kresd[2278]: ip: either "dev" is duplicate, or "type" is garbage
En appelant /usr/sbin/ip, ça passe sans problème.
J'ai aussi voulu coller ce script dans /etc/hotplug.d/iface pour qu'il soit executé automatiquement au link up au lieu d'une référence explicite dans rc.local, mais là par contre pas moyen. J'ai même collé un appel à logger au tout début pour voir, mais rien à faire, il semble complètement ignorer le script. Que ça soit au boot ou plus tard en débranchant/rebranchant le câble Ethernet WAN du routeur.
Dans l'absolu c'est pas vraiment un problème vu que rc.local fait le boulot au boot, mais je serais curieux de savoir si quelqu'un de plus calé en Turris/OpenWRT aurait une idée.
Le script réside à /etc/hotplug.d/iface/05-vlanprio et ressemble à ça:
#!/bin/sh
set -x
logger -t vlanprio "$ACTION on $INTERFACE detected"
for i in 0 1 2 3 4 5 6 7; do
## on définit pour chaque file une priorité
/usr/sbin/ip link set eth1.832 type vlan egress $i:$i >/dev/null
done
/usr/sbin/ip link set eth1.832 type vlan egress 1:0 >/dev/null
/usr/sbin/ip link set eth1.832 type vlan egress 0:6 >/dev/null