From 0d5a5307bee0c9fd303b1cda9473808797d84eeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 1 Jan 2017 05:13:46 +0100 Subject: [PATCH] iproute: remove broken fan patch --- .../iproute/1000-ubuntu-poc-fan-driver.patch | 65 ------- .../1001-ubuntu-poc-fan-driver-v3.patch | 133 ------------- .../1002-ubuntu-poc-fan-driver-vxlan.patch | 177 ------------------ pkgs/os-specific/linux/iproute/default.nix | 12 +- 4 files changed, 1 insertion(+), 386 deletions(-) delete mode 100644 pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch delete mode 100644 pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch delete mode 100644 pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch 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 e0c8278d488d..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 - -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 -@@ -57,6 +57,9 @@ enum { - IFLA_IPTUN_ENCAP_FLAGS, - IFLA_IPTUN_ENCAP_SPORT, - IFLA_IPTUN_ENCAP_DPORT, -+ -+ 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 -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 - #include - #include -+#include - #include -+#include -+#include - - #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 1ff68fc04080..aab2ecbcab98 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 = "1i0n071hiqxw1gisngw2jln3kcp9sh47n6fj5hdwqrvp7w20zwy0"; }; - 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