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=1Log: * 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 [email protected] 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).
_______________________________________________ nix-dev mailing list [email protected] https://mail.cs.uu.nl/mailman/listinfo/nix-dev
