Loading nixos/tests/all-tests.nix +1 −0 Original line number Diff line number Diff line Loading @@ -1408,6 +1408,7 @@ in rspamd-trainer = runTest ./rspamd-trainer.nix; rss-bridge = handleTest ./web-apps/rss-bridge { }; rss2email = handleTest ./rss2email.nix { }; rstp = runTest ./rstp.nix; rstudio-server = runTest ./rstudio-server.nix; rsync = runTest ./rsync.nix; rsyncd = runTest ./rsyncd.nix; Loading nixos/tests/containers-restart_networking.nix +0 −31 Original line number Diff line number Diff line Loading @@ -55,24 +55,6 @@ ]; }; }; specialisation.eth1-rstp.configuration = { networking.bridges.br0 = { interfaces = [ "eth1" ]; rstp = lib.mkForce true; }; networking.interfaces = { eth1.ipv4.addresses = lib.mkForce [ ]; eth1.ipv6.addresses = lib.mkForce [ ]; br0.ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; }; }; }; }; Loading Loading @@ -100,19 +82,6 @@ "grep eth1 /run/br0.interfaces >&2", ) # activating rstp needs another service, therefore the bridge will restart and the container will lose its connectivity # with subtest("Bridged configuration with STP"): # client.succeed("/run/booted-system/specialisation/eth1-rstp/bin/switch-to-configuration test >&2") # client.execute("ip -4 a >&2") # client.execute("ip l >&2") # # client.succeed( # "ping 192.168.1.122 -c 1 -n >&2", # "nixos-container run webserver -- ping -c 1 -n 192.168.1.2 >&2", # "ip l show eth1 |grep 'master br0' >&2", # "grep eth1 /run/br0.interfaces >&2", # ) with subtest("Reverting to initial configuration preserves connectivity"): client.succeed( "/run/booted-system/bin/switch-to-configuration test >&2" Loading nixos/tests/rstp.nix 0 → 100644 +66 −0 Original line number Diff line number Diff line { pkgs, lib, ... }: { name = "rstp"; nodes = { client = { containers = { peer = { autoStart = true; privateNetwork = true; hostBridge = "br0"; config = { networking = { interfaces = { eth0 = { ipv4.addresses = [ { address = "192.168.1.122"; prefixLength = 24; } ]; }; }; }; }; }; }; networking = { bridges = { br0 = { interfaces = [ ]; rstp = true; }; }; interfaces = { eth1 = { ipv4.addresses = lib.mkForce [ ]; ipv6.addresses = lib.mkForce [ ]; }; br0 = { ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; }; }; }; virtualisation = { vlans = [ 1 ]; }; }; }; testScript = '' client.start() client.wait_for_unit("default.target") client.wait_until_succeeds("journalctl | grep 'Port vb-peer : up'", timeout=10) ''; } pkgs/by-name/ms/mstpd/package.nix +18 −11 Original line number Diff line number Diff line Loading @@ -8,32 +8,39 @@ stdenv.mkDerivation (finalAttrs: { pname = "mstpd"; version = "0.0.8"; version = "0.1.0"; src = fetchFromGitHub { owner = "mstpd"; repo = "mstpd"; rev = finalAttrs.version; sha256 = "1xkfydxljdnj49p5r3mirk4k146428b6imfc9bkfps9yjn64mkgb"; hash = "sha256-m4gbVXAPIYGQvTFaSziFuOO6say5kgUsk7NSdqXgKmA="; }; patches = [ (fetchpatch { name = "fix-strncpy-gcc9.patch"; url = "https://github.com/mstpd/mstpd/commit/d27d7e93485d881d8ff3a7f85309b545edbe1fc6.patch"; sha256 = "19456daih8l3y6m9kphjr7pj7slrqzbj6yacnlgznpxyd8y4d86y"; }) ]; nativeBuildInputs = [ autoreconfHook ]; configureFlags = [ "--prefix=$(out)" "--sysconfdir=$(out)/etc" "--sbindir=$(out)/sbin" "--sbindir=$(out)/bin" "--libexecdir=$(out)/lib" "--with-bashcompletiondir=$(out)/share/bash-completion/completions" ]; # bridge-stp is a helper called by the kernel whenever STP is enabled/disabled # on a bridge - the built-in version is incompatible with NixOS, so there's no # point keeping it around. # # An alternative script gets automatically generated by NixOS network module # whenever a bridge needs mstpd (grep for `bridgeStp`). postInstall = '' rm $out/bin/bridge-stp # Remove now-dangling symlinks, too rm $out/bin/mstp_restart rm $out/lib/mstpctl-utils/mstpctl_restart_config ''; meta = { description = "Multiple Spanning Tree Protocol daemon"; homepage = "https://github.com/mstpd/mstpd"; Loading Loading
nixos/tests/all-tests.nix +1 −0 Original line number Diff line number Diff line Loading @@ -1408,6 +1408,7 @@ in rspamd-trainer = runTest ./rspamd-trainer.nix; rss-bridge = handleTest ./web-apps/rss-bridge { }; rss2email = handleTest ./rss2email.nix { }; rstp = runTest ./rstp.nix; rstudio-server = runTest ./rstudio-server.nix; rsync = runTest ./rsync.nix; rsyncd = runTest ./rsyncd.nix; Loading
nixos/tests/containers-restart_networking.nix +0 −31 Original line number Diff line number Diff line Loading @@ -55,24 +55,6 @@ ]; }; }; specialisation.eth1-rstp.configuration = { networking.bridges.br0 = { interfaces = [ "eth1" ]; rstp = lib.mkForce true; }; networking.interfaces = { eth1.ipv4.addresses = lib.mkForce [ ]; eth1.ipv6.addresses = lib.mkForce [ ]; br0.ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; }; }; }; }; Loading Loading @@ -100,19 +82,6 @@ "grep eth1 /run/br0.interfaces >&2", ) # activating rstp needs another service, therefore the bridge will restart and the container will lose its connectivity # with subtest("Bridged configuration with STP"): # client.succeed("/run/booted-system/specialisation/eth1-rstp/bin/switch-to-configuration test >&2") # client.execute("ip -4 a >&2") # client.execute("ip l >&2") # # client.succeed( # "ping 192.168.1.122 -c 1 -n >&2", # "nixos-container run webserver -- ping -c 1 -n 192.168.1.2 >&2", # "ip l show eth1 |grep 'master br0' >&2", # "grep eth1 /run/br0.interfaces >&2", # ) with subtest("Reverting to initial configuration preserves connectivity"): client.succeed( "/run/booted-system/bin/switch-to-configuration test >&2" Loading
nixos/tests/rstp.nix 0 → 100644 +66 −0 Original line number Diff line number Diff line { pkgs, lib, ... }: { name = "rstp"; nodes = { client = { containers = { peer = { autoStart = true; privateNetwork = true; hostBridge = "br0"; config = { networking = { interfaces = { eth0 = { ipv4.addresses = [ { address = "192.168.1.122"; prefixLength = 24; } ]; }; }; }; }; }; }; networking = { bridges = { br0 = { interfaces = [ ]; rstp = true; }; }; interfaces = { eth1 = { ipv4.addresses = lib.mkForce [ ]; ipv6.addresses = lib.mkForce [ ]; }; br0 = { ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ]; }; }; }; virtualisation = { vlans = [ 1 ]; }; }; }; testScript = '' client.start() client.wait_for_unit("default.target") client.wait_until_succeeds("journalctl | grep 'Port vb-peer : up'", timeout=10) ''; }
pkgs/by-name/ms/mstpd/package.nix +18 −11 Original line number Diff line number Diff line Loading @@ -8,32 +8,39 @@ stdenv.mkDerivation (finalAttrs: { pname = "mstpd"; version = "0.0.8"; version = "0.1.0"; src = fetchFromGitHub { owner = "mstpd"; repo = "mstpd"; rev = finalAttrs.version; sha256 = "1xkfydxljdnj49p5r3mirk4k146428b6imfc9bkfps9yjn64mkgb"; hash = "sha256-m4gbVXAPIYGQvTFaSziFuOO6say5kgUsk7NSdqXgKmA="; }; patches = [ (fetchpatch { name = "fix-strncpy-gcc9.patch"; url = "https://github.com/mstpd/mstpd/commit/d27d7e93485d881d8ff3a7f85309b545edbe1fc6.patch"; sha256 = "19456daih8l3y6m9kphjr7pj7slrqzbj6yacnlgznpxyd8y4d86y"; }) ]; nativeBuildInputs = [ autoreconfHook ]; configureFlags = [ "--prefix=$(out)" "--sysconfdir=$(out)/etc" "--sbindir=$(out)/sbin" "--sbindir=$(out)/bin" "--libexecdir=$(out)/lib" "--with-bashcompletiondir=$(out)/share/bash-completion/completions" ]; # bridge-stp is a helper called by the kernel whenever STP is enabled/disabled # on a bridge - the built-in version is incompatible with NixOS, so there's no # point keeping it around. # # An alternative script gets automatically generated by NixOS network module # whenever a bridge needs mstpd (grep for `bridgeStp`). postInstall = '' rm $out/bin/bridge-stp # Remove now-dangling symlinks, too rm $out/bin/mstp_restart rm $out/lib/mstpctl-utils/mstpctl_restart_config ''; meta = { description = "Multiple Spanning Tree Protocol daemon"; homepage = "https://github.com/mstpd/mstpd"; Loading