mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 01:43:15 +00:00
iproute: Fix regressions introduced in 3.16.0
3.16.0 introduced a regression where vlan and veth devices could not be created due to a check in the code for existing devices. This applies the upstream patch which fixes the issue. Additionally, this corrects the nixos network-interfaces task which now needs to specify the name parameter when adding links.
This commit is contained in:
parent
691c8393ea
commit
d084245e74
@ -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 = ''
|
||||
|
@ -8,7 +8,10 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0ybv29m88lccpfrh2dgiqash4c3gfvwwpx9kakvnc8c71rn8l2hz";
|
||||
};
|
||||
|
||||
patch = [ "vpnc.patch" ];
|
||||
patch = [
|
||||
./vpnc.patch
|
||||
./device-checking.patch # Remove after 3.16.0
|
||||
];
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
|
32
pkgs/os-specific/linux/iproute/device-checking.patch
Normal file
32
pkgs/os-specific/linux/iproute/device-checking.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From f1b66ff83a0babbe99fef81b3a960d7a4ce8dbc6 Mon Sep 17 00:00:00 2001
|
||||
From: vadimk <vadim4j@gmail.com>
|
||||
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 <vadim4j@gmail.com>
|
||||
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user