mt300a: use module-based network services for lan/wan

This commit is contained in:
Daniel Barlow 2023-08-31 18:27:07 +01:00
parent f1dfb1f976
commit b094220466

View file

@ -55,25 +55,38 @@
"${openwrt.src}/target/linux/ramips/dts"
];
};
networkInterfaces = rec {
networkInterfaces =
let
inherit (config.system.service.network) link;
inherit (config.system.service) vlan;
inherit (pkgs.liminix.services) oneshot;
swconfig = oneshot {
name = "swconfig";
up = ''
PATH=${pkgs.swconfig}/bin:$PATH
swconfig dev switch0 set reset
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports '1 2 3 4 6t'
swconfig dev switch0 vlan 2 set ports '0 6t'
swconfig dev switch0 set apply
'';
down = "swconfig dev switch0 set reset";
};
in rec {
eth = link.build { ifname = "eth0"; dependencies = [swconfig]; };
# lan and wan ports are both behind a switch on eth0
eth = interface { device = "eth0"; };
lan = interface {
type = "vlan";
device = "eth0.1";
link = "eth0";
id = "1";
dependencies = [eth];
lan = vlan.build {
ifname = "eth0.1";
primary = eth;
vid = "1";
};
wan = interface {
type = "vlan";
device = "eth0.2";
id = "2";
link = "eth0";
dependencies = [eth];
wan = vlan.build {
ifname = "eth0.2";
primary = eth;
vid = "2";
};
wlan = interface {
device = "wlan0";
wlan = link.build {
ifname = "wlan0";
dependencies = [ mac80211 ];
};
};