diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index 97b37b0714cd..a2423a2bd304 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -760,7 +760,7 @@ in # Remove Dead Interfaces ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}" - ip link add "${n}" type bond + ip link add name "${n}" type bond # !!! There must be a better way to wait for the interface while [ ! -d /sys/class/net/${n} ]; do sleep 0.1; done; @@ -798,7 +798,7 @@ in script = '' # Remove Dead Interfaces ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}" - ip link add "${n}" type sit \ + ip link add name "${n}" type sit \ ${optionalString (v.remote != null) "remote \"${v.remote}\""} \ ${optionalString (v.local != null) "local \"${v.local}\""} \ ${optionalString (v.ttl != null) "ttl ${toString v.ttl}"} \ @@ -824,7 +824,7 @@ in script = '' # Remove Dead Interfaces ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}" - ip link add link "${v.interface}" "${n}" type vlan id "${toString v.id}" + ip link add link "${v.interface}" name "${n}" type vlan id "${toString v.id}" ip link set "${n}" up ''; postStop = '' diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix index b10b513f2952..cf602a46f81d 100644 --- a/pkgs/os-specific/linux/iproute/default.nix +++ b/pkgs/os-specific/linux/iproute/default.nix @@ -8,7 +8,10 @@ stdenv.mkDerivation rec { sha256 = "0ybv29m88lccpfrh2dgiqash4c3gfvwwpx9kakvnc8c71rn8l2hz"; }; - patch = [ "vpnc.patch" ]; + patch = [ + ./vpnc.patch + ./device-checking.patch # Remove after 3.16.0 + ]; preConfigure = '' diff --git a/pkgs/os-specific/linux/iproute/device-checking.patch b/pkgs/os-specific/linux/iproute/device-checking.patch new file mode 100644 index 000000000000..a55423be38c3 --- /dev/null +++ b/pkgs/os-specific/linux/iproute/device-checking.patch @@ -0,0 +1,32 @@ +From f1b66ff83a0babbe99fef81b3a960d7a4ce8dbc6 Mon Sep 17 00:00:00 2001 +From: vadimk +Date: Sat, 30 Aug 2014 15:06:00 +0300 +Subject: ip link: Remove unnecessary device checking + +The real checking is performed later in iplink_modify(..) func which +checks device existence if NLM_F_CREATE flag is set. + +Also it fixes the case when impossible to add veth link which was +caused by 9a02651a87 (ip: check for missing dev arg when doing VF rate) +because these devices are not exist yet. + +Signed-off-by: Vadim Kochan +Acked-by: Oliver Hartkopp +Signed-off-by: Stephen Hemminger + +diff --git a/ip/iplink.c b/ip/iplink.c +index 1a907d9..ea06871 100644 +--- a/ip/iplink.c ++++ b/ip/iplink.c +@@ -593,8 +593,6 @@ int iplink_parse(int argc, char **argv, struct iplink_req *req, + duparg2("dev", *argv); + *dev = *argv; + dev_index = ll_name_to_index(*dev); +- if (dev_index == 0) +- invarg("Unknown device", *argv); + } + argc--; argv++; + } +-- +cgit v0.10.1 +