Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: iproute2

iproute2 (5.2.0-1ubuntu1) eoan; urgency=medium * Merge with Debian testing. Remaining changes: - Add: Ubuntu Fan driver (V2/3/4) patches - d/p/1000-ubuntu-poc-fan-driver.patch Ubuntu FAN driver support V2 (LP 1439706) - d/p/1001-ubuntu-poc-fan-driver-v3.patch Ubuntu FAN driver support V3 (LP 1470091) - d/p/1002-ubuntu-poc-fan-driver-vxlan.patch Ubuntu FAN driver support VXLAN V4. - Drop: debian/patches/0001-Add-moo-feature.patch * Dropped changes: - d/p/1005-lib-suppress-error-msg-when-filling-the-cache.patch Already included upstream in 5.2.0. -- Stefan Bader <stefan.bader@canonical.com> Thu, 08 Aug 2019 11:18:17 +0200

Modifications :
  1. Download patch debian/patches/1002-ubuntu-poc-fan-driver-vxlan.patch

    --- 5.2.0-1/debian/patches/1002-ubuntu-poc-fan-driver-vxlan.patch 1970-01-01 00:00:00.000000000 +0000 +++ 5.2.0-1ubuntu1/debian/patches/1002-ubuntu-poc-fan-driver-vxlan.patch 2019-08-08 09:18:17.000000000 +0000 @@ -0,0 +1,178 @@ +Description: Fan driver support VXLAN (p4) + Fan driver setup support for vxlan interfaces. + +Index: iproute2/include/uapi/linux/if_tunnel.h +=================================================================== +--- iproute2.orig/include/uapi/linux/if_tunnel.h ++++ iproute2/include/uapi/linux/if_tunnel.h +@@ -173,7 +173,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/ip/iplink_vxlan.c +=================================================================== +--- iproute2.orig/ip/iplink_vxlan.c ++++ iproute2/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" +@@ -73,6 +76,45 @@ static void check_duparg(__u64 *attrs, i + duparg2(key, argv); + } + ++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) + { +@@ -330,6 +372,11 @@ static int vxlan_parse_opt(struct link_u + } else if (!matches(*argv, "gpe")) { + check_duparg(&attrs, IFLA_VXLAN_GPE, *argv, *argv); + addattr_l(n, 1024, IFLA_VXLAN_GPE, NULL, 0); ++ } else if (!matches(*argv, "fan-map")) { ++ check_duparg(&attrs, IFLA_VXLAN_FAN_MAP, *argv, *argv); ++ NEXT_ARG(); ++ if (fan_parse_map(&argc, &argv, n)) ++ invarg("invalid fan-map", *argv); + } else if (matches(*argv, "help") == 0) { + explain(); + return -1; +@@ -406,6 +453,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; +@@ -466,6 +535,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]); + +Index: iproute2/ip/link_iptnl.c +=================================================================== +--- iproute2.orig/ip/link_iptnl.c ++++ iproute2/ip/link_iptnl.c +@@ -70,10 +70,11 @@ static void iptunnel_print_help(struct l + " MARK := { 0x0..0xffffffff }\n" + ); + } ++ + 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; +@@ -82,8 +83,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)) +@@ -415,7 +418,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; +Index: iproute2/include/uapi/linux/if_link.h +=================================================================== +--- iproute2.orig/include/uapi/linux/if_link.h ++++ iproute2/include/uapi/linux/if_link.h +@@ -533,6 +533,7 @@ enum { + IFLA_VXLAN_GPE, + IFLA_VXLAN_TTL_INHERIT, + IFLA_VXLAN_DF, ++ IFLA_VXLAN_FAN_MAP = 33, + __IFLA_VXLAN_MAX + }; + #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
  2. Download patch debian/control

    --- 5.2.0-1/debian/control 2019-07-09 19:52:47.000000000 +0000 +++ 5.2.0-1ubuntu1/debian/control 2019-08-08 09:18:17.000000000 +0000 @@ -1,7 +1,8 @@ Source: iproute2 Section: net Priority: optional -Maintainer: Alexander Wirt <formorer@debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Alexander Wirt <formorer@debian.org> Uploaders: Luca Boccassi <bluca@debian.org> Homepage: https://wiki.linuxfoundation.org/networking/iproute2 Vcs-Browser: https://salsa.debian.org/debian/iproute2.git
  3. Download patch debian/patches/series

    --- 5.2.0-1/debian/patches/series 2019-07-09 19:52:47.000000000 +0000 +++ 5.2.0-1ubuntu1/debian/patches/series 2019-08-08 09:18:17.000000000 +0000 @@ -1,2 +1,8 @@ -0001-Add-moo-feature.patch 0004-sync-iptables-header.patch + + + +1000-ubuntu-poc-fan-driver.patch +1001-ubuntu-poc-fan-driver-v3.patch +1002-ubuntu-poc-fan-driver-vxlan.patch +
  4. Download patch debian/patches/1000-ubuntu-poc-fan-driver.patch

    --- 5.2.0-1/debian/patches/1000-ubuntu-poc-fan-driver.patch 1970-01-01 00:00:00.000000000 +0000 +++ 5.2.0-1ubuntu1/debian/patches/1000-ubuntu-poc-fan-driver.patch 2019-08-08 09:18:17.000000000 +0000 @@ -0,0 +1,74 @@ +Description: POC fan driver support + POC Fan driver support +Author: Jay Vosburgh <jay.vosburgh@canonical.com> + +Index: iproute2/ip/link_iptnl.c +=================================================================== +--- iproute2.orig/ip/link_iptnl.c ++++ iproute2/ip/link_iptnl.c +@@ -91,6 +91,7 @@ static int iptunnel_parse_opt(struct lin + struct rtattr *iptuninfo[IFLA_IPTUN_MAX + 1]; + int len; + inet_prefix saddr, daddr, ip6rdprefix, ip6rdrelayprefix; ++ inet_prefix underlay; + __u8 pmtudisc = 1; + __u8 tos = 0; + __u16 iflags = 0; +@@ -106,6 +107,7 @@ static int iptunnel_parse_opt(struct lin + + inet_prefix_reset(&saddr); + inet_prefix_reset(&daddr); ++ inet_prefix_reset(&underlay); + + inet_prefix_reset(&ip6rdprefix); + inet_prefix_reset(&ip6rdrelayprefix); +@@ -219,6 +221,9 @@ get_failed: + } else if (strcmp(*argv, "remote") == 0) { + NEXT_ARG(); + get_addr(&daddr, *argv, AF_INET); ++ } else if (strcmp(*argv, "underlay") == 0) { ++ NEXT_ARG(); ++ get_addr(&underlay, *argv, AF_INET); + } else if (strcmp(*argv, "local") == 0) { + NEXT_ARG(); + get_addr(&saddr, *argv, AF_INET); +@@ -360,6 +365,10 @@ get_failed: + } + } + ++ if (is_addrtype_inet(&underlay)) ++ addattr_l(n, 1024, IFLA_IPTUN_FAN_UNDERLAY, ++ underlay.data, underlay.bytelen); ++ + return 0; + } + +@@ -398,6 +407,14 @@ static void iptunnel_print_opt(struct li + tnl_print_endpoint("remote", tb[IFLA_IPTUN_REMOTE], AF_INET); + tnl_print_endpoint("local", tb[IFLA_IPTUN_LOCAL], AF_INET); + ++ if (tb[IFLA_IPTUN_FAN_UNDERLAY]) { ++ inet_prefix addr; ++ ++ if(!get_addr_rta(&addr, tb[IFLA_IPTUN_FAN_UNDERLAY], AF_INET)) ++ print_string(PRINT_ANY, "underlay", "underlay %s ", ++ format_host(AF_INET, addr.bytelen, addr.data)); ++ } ++ + if (tb[IFLA_IPTUN_LINK]) { + __u32 link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]); + +Index: iproute2/include/uapi/linux/if_tunnel.h +=================================================================== +--- iproute2.orig/include/uapi/linux/if_tunnel.h ++++ iproute2/include/uapi/linux/if_tunnel.h +@@ -77,6 +77,9 @@ enum { + IFLA_IPTUN_ENCAP_DPORT, + IFLA_IPTUN_COLLECT_METADATA, + IFLA_IPTUN_FWMARK, ++ ++ IFLA_IPTUN_FAN_UNDERLAY = 32, ++ + __IFLA_IPTUN_MAX, + }; + #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1)
  5. Download patch debian/patches/0001-Add-moo-feature.patch

    --- 5.2.0-1/debian/patches/0001-Add-moo-feature.patch 2019-07-09 19:52:47.000000000 +0000 +++ 5.2.0-1ubuntu1/debian/patches/0001-Add-moo-feature.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -From: Alexander Wirt <formorer@debian.org> -Date: Mon, 10 Jun 2013 11:47:00 +0200 -Subject: Add moo feature - ---- - ip/ip.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - ---- a/ip/ip.c -+++ b/ip/ip.c -@@ -69,6 +69,20 @@ static int do_help(int argc, char **argv - return 0; - } - -+static int do_moo(int argc, char **argv) -+{ -+ -+fprintf(stderr, -+"\n" -+" _ __ ___ ___ ___\n" -+"| '_ ` _ \\ / _ \\ / _ \\\n" -+"| | | | | | (_) | (_) |\n" -+"|_| |_| |_|\\___/ \\___/\n" -+"\n\n" -+"P.S. no real cows were harmed for this moo\n"); -+ exit(1); -+} -+ - static const struct cmd { - const char *cmd; - int (*func)(int argc, char **argv); -@@ -103,6 +117,7 @@ static const struct cmd { - { "vrf", do_ipvrf}, - { "sr", do_seg6 }, - { "help", do_help }, -+ { "moo", do_moo }, - { 0 } - }; -
  6. Download patch debian/patches/1001-ubuntu-poc-fan-driver-v3.patch

    --- 5.2.0-1/debian/patches/1001-ubuntu-poc-fan-driver-v3.patch 1970-01-01 00:00:00.000000000 +0000 +++ 5.2.0-1ubuntu1/debian/patches/1001-ubuntu-poc-fan-driver-v3.patch 2019-08-08 09:18:17.000000000 +0000 @@ -0,0 +1,134 @@ +Description: Fan driver support v3 + Fan driver support v3 +Author: Jay Vosburgh <jay.vosburgh@canonical.com> +Index: iproute2/include/uapi/linux/if_tunnel.h +=================================================================== +--- iproute2.orig/include/uapi/linux/if_tunnel.h ++++ iproute2/include/uapi/linux/if_tunnel.h +@@ -79,6 +79,7 @@ enum { + IFLA_IPTUN_FWMARK, + + IFLA_IPTUN_FAN_UNDERLAY = 32, ++ IFLA_IPTUN_FAN_MAP = 33, + + __IFLA_IPTUN_MAX, + }; +@@ -164,6 +165,21 @@ 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; ++}; ++ + #define TUNNEL_CSUM __cpu_to_be16(0x01) + #define TUNNEL_ROUTING __cpu_to_be16(0x02) + #define TUNNEL_KEY __cpu_to_be16(0x04) +Index: iproute2/ip/link_iptnl.c +=================================================================== +--- iproute2.orig/ip/link_iptnl.c ++++ iproute2/ip/link_iptnl.c +@@ -70,6 +70,42 @@ static void iptunnel_print_help(struct l + " MARK := { 0x0..0xffffffff }\n" + ); + } ++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) +@@ -224,6 +260,10 @@ get_failed: + } else if (strcmp(*argv, "underlay") == 0) { + NEXT_ARG(); + get_addr(&underlay, *argv, AF_INET); ++ } 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(); + get_addr(&saddr, *argv, AF_INET); +@@ -372,6 +412,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 s2[64]; +@@ -415,6 +477,9 @@ static void iptunnel_print_opt(struct li + format_host(AF_INET, addr.bytelen, addr.data)); + } + ++ if (tb[IFLA_IPTUN_FAN_MAP]) ++ fan_print_map(f, tb[IFLA_IPTUN_FAN_MAP]); ++ + if (tb[IFLA_IPTUN_LINK]) { + __u32 link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]); +
  1. iproute2