bandwhich: 0.23.0 -> 0.23.1; move to by-name; nixfmt; useFetchCargoVendor (#356934)
[NixPkgs.git] / nixos / tests / ndppd.nix
blob23f1826cc3f712fa91fa615c62f07c62bece2da1
1 import ./make-test-python.nix (
2   { pkgs, lib, ... }:
3   {
4     name = "ndppd";
5     meta = with pkgs.lib.maintainers; {
6       maintainers = [ fpletz ];
7     };
9     nodes = {
10       upstream =
11         { pkgs, ... }:
12         {
13           environment.systemPackages = [ pkgs.tcpdump ];
14           networking.useDHCP = false;
15           networking.interfaces = {
16             eth1 = {
17               ipv6.addresses = [
18                 {
19                   address = "fd23::1";
20                   prefixLength = 112;
21                 }
22               ];
23               ipv6.routes = [
24                 {
25                   address = "fd42::";
26                   prefixLength = 112;
27                 }
28               ];
29             };
30           };
31         };
32       server =
33         { pkgs, ... }:
34         {
35           boot.kernel.sysctl = {
36             "net.ipv6.conf.all.forwarding" = "1";
37             "net.ipv6.conf.default.forwarding" = "1";
38           };
39           environment.systemPackages = [ pkgs.tcpdump ];
40           networking.useDHCP = false;
41           networking.interfaces = {
42             eth1 = {
43               ipv6.addresses = [
44                 {
45                   address = "fd23::2";
46                   prefixLength = 112;
47                 }
48               ];
49             };
50           };
51           services.ndppd = {
52             enable = true;
53             proxies.eth1.rules."fd42::/112" = { };
54           };
55           containers.client = {
56             autoStart = true;
57             privateNetwork = true;
58             hostAddress = "192.168.255.1";
59             localAddress = "192.168.255.2";
60             hostAddress6 = "fd42::1";
61             localAddress6 = "fd42::2";
62             config = { };
63           };
64         };
65     };
67     testScript = ''
68       start_all()
69       server.wait_for_unit("multi-user.target")
70       upstream.wait_for_unit("multi-user.target")
71       upstream.wait_until_succeeds("ping -c5 fd42::2")
72     '';
73   }