nixos/home/routing-common: Set up CAKE qdisc for wan
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 17m0s
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 17m0s
This commit is contained in:
parent
c8b65092be
commit
63f36fabbb
@ -87,7 +87,21 @@ in
|
|||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
networkd-dispatcher.enable = true;
|
networkd-dispatcher = {
|
||||||
|
enable = true;
|
||||||
|
rules = {
|
||||||
|
# tc filter hasn't been networkd-ified yet
|
||||||
|
setup-wan-mirror = {
|
||||||
|
onState = [ "configured" ];
|
||||||
|
script = ''
|
||||||
|
#!${pkgs.runtimeShell}
|
||||||
|
if [ $IFACE = "wan-phy-ifb" ]; then
|
||||||
|
${pkgs.iproute2}/bin/tc filter add dev wan-phy parent ffff: matchall action mirred egress redirect dev $IFACE
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.domain = "h.${pubDomain}";
|
networking.domain = "h.${pubDomain}";
|
||||||
@ -114,6 +128,10 @@ in
|
|||||||
in
|
in
|
||||||
mkMerge [
|
mkMerge [
|
||||||
{
|
{
|
||||||
|
"25-wan-phy-ifb".netdevConfig = {
|
||||||
|
Name = "wan-phy-ifb";
|
||||||
|
Kind = "ifb";
|
||||||
|
};
|
||||||
"25-wan".netdevConfig = {
|
"25-wan".netdevConfig = {
|
||||||
Name = "wan";
|
Name = "wan";
|
||||||
Kind = "bridge";
|
Kind = "bridge";
|
||||||
@ -180,7 +198,37 @@ in
|
|||||||
"50-wan-phy" = {
|
"50-wan-phy" = {
|
||||||
matchConfig.Name = "wan-phy";
|
matchConfig.Name = "wan-phy";
|
||||||
networkConfig.Bridge = "wan";
|
networkConfig.Bridge = "wan";
|
||||||
|
qdiscConfig = {
|
||||||
|
Parent = "ingress";
|
||||||
|
Handle = "0xffff";
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
[CAKE]
|
||||||
|
Parent=root
|
||||||
|
Bandwidth=24M
|
||||||
|
RTTSec=1ms
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
"50-wan-phy-ifb" = {
|
||||||
|
matchConfig.Name = "wan-phy-ifb";
|
||||||
|
networkConfig = {
|
||||||
|
LinkLocalAddressing = "no";
|
||||||
|
IPv6AcceptRA = false;
|
||||||
|
LLDP = false;
|
||||||
|
EmitLLDP = false;
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
[CAKE]
|
||||||
|
Bandwidth=235M
|
||||||
|
RTTSec=10ms
|
||||||
|
PriorityQueueingPreset=besteffort
|
||||||
|
# DOCSIS preset
|
||||||
|
OverheadBytes=18
|
||||||
|
MPUBytes=64
|
||||||
|
CompensationMode=none
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
"50-wan-tunnel" = {
|
"50-wan-tunnel" = {
|
||||||
matchConfig.Name = "wan-tunnel";
|
matchConfig.Name = "wan-tunnel";
|
||||||
networkConfig.Bridge = "wan";
|
networkConfig.Bridge = "wan";
|
||||||
|
Loading…
Reference in New Issue
Block a user