[Nix-dev] Re: [Nix-commits] SVN commit: nix - r26279 - in nixos/trunk: lib modules/tasks
Shea Levy
shea at shealevy.com
Fri Mar 11 16:00:50 CET 2011
On 3/11/11 9:50 AM, Eelco Dolstra wrote:
> Author: eelco
> Date: Fri Mar 11 14:50:11 2011
> New Revision: 26279
> URL: https://svn.nixos.org/websvn/nix/?rev=26279&sc=1
>
> Log:
> * Use "ip" instead of "ifconfig" for setting up network interfaces,
> since the latter is rather deprecated and has been unmaintained
> since 2001. Note that "ip" doesn't know about classful addressing,
> so you can no longer get away with not specifying the subnet mask
> for explicitly configured interfaces. So if you had
>
> networking.interfaces =
> [ { name = "eth0"; ipAddress = "192.168.1.1"; } ];
>
> this should be changed to
>
> networking.interfaces =
> [ { name = "eth0";
> ipAddress = "192.168.1.1";
> subnetMask = "255.255.255.0";
> }
> ];
>
> otherwise you end up with a subnet mask of 255.255.255.255.
>
> Modified:
> nixos/trunk/lib/build-vms.nix
> nixos/trunk/modules/tasks/network-interfaces.nix
>
> Modified: nixos/trunk/lib/build-vms.nix
> ==============================================================================
> --- nixos/trunk/lib/build-vms.nix Fri Mar 11 13:59:01 2011 (r26278)
> +++ nixos/trunk/lib/build-vms.nix Fri Mar 11 14:50:11 2011 (r26279)
> @@ -51,6 +51,7 @@
> lib.flip map interfacesNumbered ({ first, second }:
> { name = "eth${toString second}";
> ipAddress = "192.168.${toString first}.${toString m.second}";
> + subnetMask = "255.255.255.0";
> }
> );
> in
>
> Modified: nixos/trunk/modules/tasks/network-interfaces.nix
> ==============================================================================
> --- nixos/trunk/modules/tasks/network-interfaces.nix Fri Mar 11 13:59:01 2011 (r26278)
> +++ nixos/trunk/modules/tasks/network-interfaces.nix Fri Mar 11 14:50:11 2011 (r26279)
> @@ -4,12 +4,8 @@
>
> let
>
> - inherit (pkgs) nettools;
> -
> cfg = config.networking;
>
> - ifconfig = "${nettools}/sbin/ifconfig";
> -
> in
>
> {
> @@ -166,33 +162,28 @@
>
> preStart =
> ''
> - ${pkgs.lib.concatMapStrings (i:
> - if i.macAddress != "" then
> - ''
> - echo "Configuring interface ${i.name}..."
> - ${ifconfig} "${i.name}" down || true
> - ${ifconfig} "${i.name}" hw ether "${i.macAddress}" || true
> + ${flip concatMapStrings cfg.interfaces (i:
> + optionalString (i.macAddress != "")
> ''
> - else "") cfg.interfaces
> + echo "Setting MAC address of ${i.name} to ${i.macAddress}..."
> + ip link set "${i.name}" address "${i.macAddress}" || true
> + '')
> }
>
> for i in $(cd /sys/class/net&& ls -d *); do
> echo "Bringing up network device $i..."
> - ${ifconfig} $i up || true
> + ip link set "$i" up || true
> done
>
> # Configure the manually specified interfaces.
> - ${pkgs.lib.concatMapStrings (i:
> - if i.ipAddress != "" then
> + ${flip concatMapStrings cfg.interfaces (i:
> + optionalString (i.ipAddress != "")
> ''
> echo "Configuring interface ${i.name}..."
> - extraFlags=
> - if test -n "${i.subnetMask}"; then
> - extraFlags="$extraFlags netmask ${i.subnetMask}"
> - fi
> - ${ifconfig} "${i.name}" "${i.ipAddress}" $extraFlags || true
> - ''
> - else "") cfg.interfaces}
> + ip addr add "${i.ipAddress}""${optionalString (i.subnetMask != "") ("/" + i.subnetMask)}" \
> + dev "${i.name}" || true
> + '')
> + }
>
> # Set the nameservers.
> if test -n "${toString cfg.nameservers}"; then
> @@ -206,9 +197,9 @@
> fi
>
> # Set the default gateway.
> - if test -n "${cfg.defaultGateway}"; then
> - ${nettools}/sbin/route add default gw "${cfg.defaultGateway}" || true
> - fi
> + ${optionalString (cfg.defaultGateway != "") ''
> + ip route add default via "${cfg.defaultGateway}" || true
> + ''}
>
> # Run any user-specified commands.
> ${pkgs.stdenv.shell} ${pkgs.writeText "local-net-cmds" cfg.localCommands} || true
> @@ -218,14 +209,6 @@
> initctl emit -n ip-up
> ''}
> '';
> -
> - postStop =
> - ''
> - #for i in $(cd /sys/class/net&& ls -d *); do
> - # echo "Taking down network device $i..."
> - # ${ifconfig} $i down || true
> - #done
> - '';
> };
>
> # Set the host name in the activation script. Don't clear it if
> _______________________________________________
> nix-commits mailing list
> nix-commits at cs.uu.nl
> http://mail.cs.uu.nl/mailman/listinfo/nix-commits
Have you checked if wicid works with this change? It was a while back,
but I remember having trouble running wicid on a system that used
iproute2 instead of net-tools (something to do with hard-wired calls to
ifconfig IIRC).
More information about the nix-dev
mailing list