diff options
author | Robin Gloster <mail@glob.in> | 2017-09-23 17:55:33 +0200 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2017-09-23 17:55:33 +0200 |
commit | 08b09fdc5cff4249c9986f2403d2e4cea6e62feb (patch) | |
tree | c9031e38dc5ee93d877bf539be9352eda59a61d0 /pkgs/os-specific/linux/iproute | |
parent | 694e7e08d65d6d66b5e50a02c7a329ecec598f3c (diff) | |
download | nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.tar nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.tar.gz nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.tar.bz2 nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.tar.lz nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.tar.xz nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.tar.zst nixlib-08b09fdc5cff4249c9986f2403d2e4cea6e62feb.zip |
fanctl, fan module: remove
This has been broken nearly all the time due to the patches needed to iproute2 not being compatible with the newer versions we have been shipping. As long as Ubuntu does not manage to upstream these changes so they are maintained with iproute2 and we don't have a maintainer updating these patches to new iproute2 versions it is not feasible to have this available.
Diffstat (limited to 'pkgs/os-specific/linux/iproute')
4 files changed, 1 insertions, 386 deletions
diff --git a/pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch b/pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch deleted file mode 100644 index 733a5122d136..000000000000 --- a/pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch +++ /dev/null @@ -1,65 +0,0 @@ -Description: POC fan driver support - POC Fan driver support -Author: Jay Vosburgh <jay.vosburgh@canonical.com> - -Index: iproute2-4.1.1/include/linux/if_tunnel.h -=================================================================== ---- iproute2-4.1.1.orig/include/linux/if_tunnel.h -+++ iproute2-4.1.1/include/linux/if_tunnel.h -@@ -75,6 +75,9 @@ enum { - IFLA_IPTUN_ENCAP_SPORT, - IFLA_IPTUN_ENCAP_DPORT, - IFLA_IPTUN_COLLECT_METADATA, -+ -+ IFLA_IPTUN_FAN_UNDERLAY = 32, -+ - __IFLA_IPTUN_MAX, - }; - #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) -Index: iproute2-4.1.1/ip/link_iptnl.c -=================================================================== ---- iproute2-4.1.1.orig/ip/link_iptnl.c -+++ iproute2-4.1.1/ip/link_iptnl.c -@@ -66,6 +66,7 @@ static int iptunnel_parse_opt(struct lin - __u32 link = 0; - __u32 laddr = 0; - __u32 raddr = 0; -+ __u32 underlay = 0; - __u8 ttl = 0; - __u8 tos = 0; - __u8 pmtudisc = 1; -@@ -174,6 +175,9 @@ get_failed: - raddr = get_addr32(*argv); - else - raddr = 0; -+ } else if (strcmp(*argv, "underlay") == 0) { -+ NEXT_ARG(); -+ underlay = get_addr32(*argv); - } else if (strcmp(*argv, "local") == 0) { - NEXT_ARG(); - if (strcmp(*argv, "any")) -@@ -318,6 +322,9 @@ get_failed: - } - } - -+ if (underlay) -+ addattr32(n, 1024, IFLA_IPTUN_FAN_UNDERLAY, underlay); -+ - return 0; - } - -@@ -349,6 +356,14 @@ static void iptunnel_print_opt(struct li - - fprintf(f, "local %s ", local); - -+ if (tb[IFLA_IPTUN_FAN_UNDERLAY]) { -+ unsigned addr = rta_getattr_u32(tb[IFLA_IPTUN_FAN_UNDERLAY]); -+ -+ if (addr) -+ fprintf(f, "underlay %s ", -+ format_host_r(AF_INET, 4, &addr, s1, sizeof(s1))); -+ } -+ - if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) { - unsigned link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]); - const char *n = if_indextoname(link, s2); diff --git a/pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch b/pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch deleted file mode 100644 index 634daa0de29f..000000000000 --- a/pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch +++ /dev/null @@ -1,133 +0,0 @@ -Description: Fan driver support v3 - Fan driver support v3 -Author: Jay Vosburgh <jay.vosburgh@canonical.com> -Index: iproute2-4.1.1/include/linux/if_tunnel.h -=================================================================== ---- iproute2-4.1.1.orig/include/linux/if_tunnel.h -+++ iproute2-4.1.1/include/linux/if_tunnel.h -@@ -59,6 +59,7 @@ enum { - IFLA_IPTUN_ENCAP_DPORT, - - IFLA_IPTUN_FAN_UNDERLAY = 32, -+ IFLA_IPTUN_FAN_MAP = 33, - - __IFLA_IPTUN_MAX, - }; -@@ -134,4 +135,20 @@ enum { - }; - - #define IFLA_VTI_MAX (__IFLA_VTI_MAX - 1) -+ -+enum { -+ IFLA_FAN_UNSPEC, -+ IFLA_FAN_MAPPING, -+ __IFLA_FAN_MAX, -+}; -+ -+#define IFLA_FAN_MAX (__IFLA_FAN_MAX - 1) -+ -+struct ip_tunnel_fan_map { -+ __be32 underlay; -+ __be32 overlay; -+ __u16 underlay_prefix; -+ __u16 overlay_prefix; -+}; -+ - #endif /* _IF_TUNNEL_H_ */ -Index: iproute2-4.1.1/ip/link_iptnl.c -=================================================================== ---- iproute2-4.1.1.orig/ip/link_iptnl.c -+++ iproute2-4.1.1/ip/link_iptnl.c -@@ -49,6 +49,42 @@ static void usage(int sit) - print_usage(stderr, sit); - exit(-1); - } -+static int fan_parse_map(int *argcp, char ***argvp, struct nlmsghdr *n) -+{ -+ inet_prefix underlay, overlay; -+ struct ip_tunnel_fan_map map; -+ struct rtattr *nest; -+ char **argv = *argvp; -+ int argc = *argcp; -+ -+ nest = addattr_nest(n, 1024, IFLA_IPTUN_FAN_MAP); -+ while (argc > 0) { -+ char *colon = strchr(*argv, ':'); -+ -+ if (!colon) -+ break; -+ *colon = '\0'; -+ -+ if (get_prefix(&overlay, *argv, AF_INET)) -+ invarg("invalid fan-map overlay", *argv); -+ if (get_prefix(&underlay, colon + 1, AF_INET)) -+ invarg("invalid fan-map underlay", colon + 1); -+ -+ memcpy(&map.underlay, underlay.data, 4); -+ map.underlay_prefix = underlay.bitlen; -+ memcpy(&map.overlay, overlay.data, 4); -+ map.overlay_prefix = overlay.bitlen; -+ -+ argc--, argv++; -+ -+ addattr_l(n, 1024, IFLA_FAN_MAPPING, &map, sizeof(map)); -+ } -+ addattr_nest_end(n, nest); -+ -+ *argcp = argc; -+ *argvp = argv; -+ return 0; -+} - - static int iptunnel_parse_opt(struct link_util *lu, int argc, char **argv, - struct nlmsghdr *n) -@@ -178,6 +214,10 @@ get_failed: - } else if (strcmp(*argv, "underlay") == 0) { - NEXT_ARG(); - underlay = get_addr32(*argv); -+ } else if (strcmp(*argv, "fan-map") == 0) { -+ NEXT_ARG(); -+ if (fan_parse_map(&argc, &argv, n)) -+ invarg("invalid fan-map", *argv); - } else if (strcmp(*argv, "local") == 0) { - NEXT_ARG(); - if (strcmp(*argv, "any")) -@@ -328,6 +368,28 @@ get_failed: - return 0; - } - -+static void fan_print_map(FILE *f, struct rtattr *attr) -+{ -+ char b1[INET_ADDRSTRLEN], b2[INET_ADDRSTRLEN]; -+ struct ip_tunnel_fan_map *m; -+ struct rtattr *i; -+ int rem; -+ int p; -+ -+ fprintf(f, "fan-map "); -+ -+ rem = RTA_PAYLOAD(attr); -+ for (i = RTA_DATA(attr); RTA_OK(i, rem); i = RTA_NEXT(i, rem)) { -+ p = RTA_PAYLOAD(i); -+ m = RTA_DATA(i); -+ fprintf(f, "%s/%d:%s/%d ", -+ rt_addr_n2a_r(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN), -+ m->overlay_prefix, -+ rt_addr_n2a_r(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN), -+ m->underlay_prefix); -+ } -+} -+ - static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) - { - char s1[1024]; -@@ -364,6 +426,9 @@ static void iptunnel_print_opt(struct li - format_host(AF_INET, 4, &addr, s1, sizeof(s1))); - } - -+ if (tb[IFLA_IPTUN_FAN_MAP]) -+ fan_print_map(f, tb[IFLA_IPTUN_FAN_MAP]); -+ - if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) { - unsigned link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]); - const char *n = if_indextoname(link, s2); diff --git a/pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch b/pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch deleted file mode 100644 index 070023d0b923..000000000000 --- a/pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch +++ /dev/null @@ -1,177 +0,0 @@ -Description: Fan driver support VXLAN (p4) - Fan driver setup support for vxlan interfaces. - -Index: iproute2-4.3.0/include/linux/if_link.h -=================================================================== ---- iproute2-4.3.0.orig/include/linux/if_link.h -+++ iproute2-4.3.0/include/linux/if_link.h -@@ -392,6 +392,7 @@ enum { - IFLA_VXLAN_COLLECT_METADATA, - IFLA_VXLAN_LABEL, - IFLA_VXLAN_GPE, -+ IFLA_VXLAN_FAN_MAP = 33, - __IFLA_VXLAN_MAX - }; - #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) -Index: iproute2-4.3.0/include/linux/if_tunnel.h -=================================================================== ---- iproute2-4.3.0.orig/include/linux/if_tunnel.h -+++ iproute2-4.3.0/include/linux/if_tunnel.h -@@ -145,7 +145,7 @@ enum { - - #define IFLA_FAN_MAX (__IFLA_FAN_MAX - 1) - --struct ip_tunnel_fan_map { -+struct ifla_fan_map { - __be32 underlay; - __be32 overlay; - __u16 underlay_prefix; -Index: iproute2-4.3.0/ip/iplink_vxlan.c -=================================================================== ---- iproute2-4.3.0.orig/ip/iplink_vxlan.c -+++ iproute2-4.3.0/ip/iplink_vxlan.c -@@ -15,7 +15,10 @@ - #include <net/if.h> - #include <linux/ip.h> - #include <linux/if_link.h> -+#include <linux/types.h> - #include <arpa/inet.h> -+#include <linux/in6.h> -+#include <linux/if_tunnel.h> - - #include "rt_names.h" - #include "utils.h" -@@ -43,6 +46,45 @@ static void explain(void) - print_explain(stderr); - } - -+static int fan_parse_map(int *argcp, char ***argvp, struct nlmsghdr *n) -+{ -+ inet_prefix underlay, overlay; -+ struct ifla_fan_map map; -+ struct rtattr *nest; -+ char **argv = *argvp; -+ int argc = *argcp; -+ -+ nest = addattr_nest(n, 1024, IFLA_VXLAN_FAN_MAP); -+ while (argc > 0) { -+ char *colon = strchr(*argv, ':'); -+ -+ if (!colon) { -+ PREV_ARG(); -+ break; -+ } -+ *colon = '\0'; -+ -+ if (get_prefix(&overlay, *argv, AF_INET)) -+ invarg("invalid fan-map overlay", *argv); -+ if (get_prefix(&underlay, colon + 1, AF_INET)) -+ invarg("invalid fan-map underlay", colon + 1); -+ -+ memcpy(&map.underlay, underlay.data, 4); -+ map.underlay_prefix = underlay.bitlen; -+ memcpy(&map.overlay, overlay.data, 4); -+ map.overlay_prefix = overlay.bitlen; -+ -+ argc--, argv++; -+ -+ addattr_l(n, 1024, IFLA_FAN_MAPPING, &map, sizeof(map)); -+ } -+ addattr_nest_end(n, nest); -+ -+ *argcp = argc; -+ *argvp = argv; -+ return 0; -+} -+ - static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv, - struct nlmsghdr *n) - { -@@ -201,6 +243,10 @@ static int vxlan_parse_opt(struct link_u - gbp = 1; - } else if (!matches(*argv, "gpe")) { - gpe = 1; -+ } else if (!matches(*argv, "fan-map")) { -+ NEXT_ARG(); -+ if (fan_parse_map(&argc, &argv, n)) -+ invarg("invalid fan-map", *argv); - } else if (matches(*argv, "help") == 0) { - explain(); - return -1; -@@ -279,6 +325,28 @@ static int vxlan_parse_opt(struct link_u - return 0; - } - -+static void fan_print_map(FILE *f, struct rtattr *attr) -+{ -+ char b1[INET_ADDRSTRLEN], b2[INET_ADDRSTRLEN]; -+ struct ifla_fan_map *m; -+ struct rtattr *i; -+ int rem; -+ int p; -+ -+ fprintf(f, "fan-map "); -+ -+ rem = RTA_PAYLOAD(attr); -+ for (i = RTA_DATA(attr); RTA_OK(i, rem); i = RTA_NEXT(i, rem)) { -+ p = RTA_PAYLOAD(i); -+ m = RTA_DATA(i); -+ fprintf(f, "%s/%d:%s/%d ", -+ rt_addr_n2a_r(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN), -+ m->overlay_prefix, -+ rt_addr_n2a_r(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN), -+ m->underlay_prefix); -+ } -+} -+ - static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) - { - __u32 vni; -@@ -321,6 +389,9 @@ static void vxlan_print_opt(struct link_ - } - } - -+ if (tb[IFLA_VXLAN_FAN_MAP]) -+ fan_print_map(f, tb[IFLA_VXLAN_FAN_MAP]); -+ - if (tb[IFLA_VXLAN_LOCAL]) { - __be32 addr = rta_getattr_u32(tb[IFLA_VXLAN_LOCAL]); - if (addr) -Index: iproute2-4.3.0/ip/link_iptnl.c -=================================================================== ---- iproute2-4.3.0.orig/ip/link_iptnl.c -+++ iproute2-4.3.0/ip/link_iptnl.c -@@ -49,10 +49,11 @@ static void usage(int sit) - print_usage(stderr, sit); - exit(-1); - } -+ - static int fan_parse_map(int *argcp, char ***argvp, struct nlmsghdr *n) - { - inet_prefix underlay, overlay; -- struct ip_tunnel_fan_map map; -+ struct ifla_fan_map map; - struct rtattr *nest; - char **argv = *argvp; - int argc = *argcp; -@@ -61,8 +62,10 @@ static int fan_parse_map(int *argcp, cha - while (argc > 0) { - char *colon = strchr(*argv, ':'); - -- if (!colon) -+ if (!colon) { -+ PREV_ARG(); - break; -+ } - *colon = '\0'; - - if (get_prefix(&overlay, *argv, AF_INET)) -@@ -371,7 +374,7 @@ get_failed: - static void fan_print_map(FILE *f, struct rtattr *attr) - { - char b1[INET_ADDRSTRLEN], b2[INET_ADDRSTRLEN]; -- struct ip_tunnel_fan_map *m; -+ struct ifla_fan_map *m; - struct rtattr *i; - int rem; - int p; diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix index 404e21bcbce0..1d312be42ec7 100644 --- a/pkgs/os-specific/linux/iproute/default.nix +++ b/pkgs/os-specific/linux/iproute/default.nix @@ -1,6 +1,4 @@ -{ fetchurl, stdenv, lib, flex, bison, db, iptables, pkgconfig -, enableFan ? false -}: +{ fetchurl, stdenv, lib, flex, bison, db, iptables, pkgconfig }: stdenv.mkDerivation rec { name = "iproute2-${version}"; @@ -11,14 +9,6 @@ stdenv.mkDerivation rec { sha256 = "0zdxdsxyaazl85xhwskvsmpyzwf5qp21cvjsi1lw3xnrc914q2if"; }; - patches = lib.optionals enableFan [ - # These patches were pulled from: - # https://launchpad.net/ubuntu/xenial/+source/iproute2 - ./1000-ubuntu-poc-fan-driver.patch - ./1001-ubuntu-poc-fan-driver-v3.patch - ./1002-ubuntu-poc-fan-driver-vxlan.patch - ]; - preConfigure = '' patchShebangs ./configure sed -e '/ARPDDIR/d' -i Makefile |