nixos/tests/fastnetmon-advanced: init

Yureka f13a5196 bf5f01ee

Changed files
+66
nixos
+1
nixos/tests/all-tests.nix
···
ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
ecryptfs = handleTest ./ecryptfs.nix {};
fscrypt = handleTest ./fscrypt.nix {};
+
fastnetmon-advanced = runTest ./fastnetmon-advanced.nix;
ejabberd = handleTest ./xmpp/ejabberd.nix {};
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
emacs-daemon = handleTest ./emacs-daemon.nix {};
+65
nixos/tests/fastnetmon-advanced.nix
···
+
{ pkgs, lib, ... }:
+
+
{
+
name = "fastnetmon-advanced";
+
meta.maintainers = lib.teams.wdz.members;
+
+
nodes = {
+
bird = { ... }: {
+
networking.firewall.allowedTCPPorts = [ 179 ];
+
services.bird2 = {
+
enable = true;
+
config = ''
+
router id 192.168.1.1;
+
+
protocol bgp fnm {
+
local 192.168.1.1 as 64513;
+
neighbor 192.168.1.2 as 64514;
+
multihop;
+
ipv4 {
+
import all;
+
export none;
+
};
+
}
+
'';
+
};
+
};
+
fnm = { ... }: {
+
networking.firewall.allowedTCPPorts = [ 179 ];
+
services.fastnetmon-advanced = {
+
enable = true;
+
settings = {
+
networks_list = [ "172.23.42.0/24" ];
+
gobgp = true;
+
gobgp_flow_spec_announces = true;
+
};
+
bgpPeers = {
+
bird = {
+
local_asn = 64514;
+
remote_asn = 64513;
+
local_address = "192.168.1.2";
+
remote_address = "192.168.1.1";
+
+
description = "Bird";
+
ipv4_unicast = true;
+
multihop = true;
+
active = true;
+
};
+
};
+
};
+
};
+
};
+
+
testScript = { nodes, ... }: ''
+
start_all()
+
fnm.wait_for_unit("fastnetmon.service")
+
bird.wait_for_unit("bird2.service")
+
+
fnm.wait_until_succeeds('journalctl -eu fastnetmon.service | grep "BGP daemon restarted correctly"')
+
fnm.wait_until_succeeds("journalctl -eu gobgp.service | grep BGP_FSM_OPENCONFIRM")
+
bird.wait_until_succeeds("birdc show protocol fnm | grep Estab")
+
fnm.wait_until_succeeds('journalctl -eu fastnetmon.service | grep "API server listening"')
+
fnm.succeed("fcli set blackhole 172.23.42.123")
+
bird.succeed("birdc show route | grep 172.23.42.123")
+
'';
+
}