commit: 16b1952b45a0bdb7cf80be1d43990927db1205ff
parent 201d086aa56ae273968d9b1a9fb94cb427b52eaa
Author: Michael Forney <mforney@mforney.org>
Date: Wed, 3 Jun 2020 13:48:51 -0700
iproute2: Update to 5.7.0
Diffstat:
6 files changed, 130 insertions(+), 125 deletions(-)
diff --git a/pkg/iproute2/gen.lua b/pkg/iproute2/gen.lua
@@ -3,6 +3,7 @@ cflags{
'-Wold-style-definition', '-Wstrict-prototypes',
'-D _GNU_SOURCE',
'-D HAVE_SETNS',
+ [[-D 'NETNS_RUN_DIR="/run/netns"']],
'-I $srcdir/include',
'-I $srcdir/include/uapi',
'-I $srcdir/misc',
@@ -53,13 +54,17 @@ man(paths[[man/man8/(
bridge ip ss
ip-(
addrlabel fou gue l2tp macsec maddress monitor mroute neighbour
- netconf netns ntable rule sr tcp_metrics token tunnel vrf xfrm
+ netconf ntable rule sr tcp_metrics token tunnel vrf xfrm
)
).8]])
-for _, name in ipairs{'ip-address', 'ip-link', 'ip-route'} do
+for _, name in ipairs{'ip-address', 'ip-link', 'ip-netns', 'ip-route'} do
local out = '$outdir/'..name..'.8'
build('sed', out, '$srcdir/man/man8/'..name..'.8.in', {
- expr='s,@SYSCONFDIR@,/etc,g'
+ expr={
+ '-e s,@SYSCONFDIR@,/etc,g',
+ '-e s,@NETNS_ETC_DIR@,/etc/netns,g',
+ '-e s,@NETNS_RUN_DIR@,/run/netns,g',
+ },
})
man{out}
end
diff --git a/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch b/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch
@@ -1,4 +1,4 @@
-From a2fd76cbac7bb7266dd88e3648c8f51804805796 Mon Sep 17 00:00:00 2001
+From 9c43080d07253a8b109b3bbe576f49a8ccf37c12 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 16 Jun 2019 12:21:05 -0700
Subject: [PATCH] Don't use empty initializer lists
@@ -103,10 +103,10 @@ index 1f2cebd8..124fef49 100644
short vid = 0;
diff --git a/bridge/vlan.c b/bridge/vlan.c
-index f65e47f6..21233a84 100644
+index cc1c34cf..231f8543 100644
--- a/bridge/vlan.c
+++ b/bridge/vlan.c
-@@ -102,7 +102,7 @@ static int add_tunnel_info_range(struct nlmsghdr *n, int reqsize,
+@@ -107,7 +107,7 @@ static int add_tunnel_info_range(struct nlmsghdr *n, int reqsize,
static int add_vlan_info_range(struct nlmsghdr *n, int reqsize, __u16 vid_start,
int16_t vid_end, __u16 flags)
{
@@ -115,7 +115,7 @@ index f65e47f6..21233a84 100644
vinfo.flags = flags;
vinfo.vid = vid_start;
-@@ -141,7 +141,7 @@ static int vlan_modify(int cmd, int argc, char **argv)
+@@ -146,7 +146,7 @@ static int vlan_modify(int cmd, int argc, char **argv)
short vid = -1;
short vid_end = -1;
struct rtattr *afspec;
@@ -125,10 +125,10 @@ index f65e47f6..21233a84 100644
unsigned short flags = 0;
__u32 tun_id_start = 0;
diff --git a/devlink/devlink.c b/devlink/devlink.c
-index f9e58c1d..ae54374e 100644
+index 16602abf..8d9648d4 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
-@@ -551,7 +551,7 @@ static int attr_stats_cb(const struct nlattr *attr, void *data)
+@@ -587,7 +587,7 @@ static int attr_stats_cb(const struct nlattr *attr, void *data)
static int ifname_map_cb(const struct nlmsghdr *nlh, void *data)
{
@@ -137,7 +137,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
struct dl *dl = data;
struct ifname_map *ifname_map;
-@@ -2130,7 +2130,7 @@ static void pr_out_eswitch(struct dl *dl, struct nlattr **tb)
+@@ -2206,7 +2206,7 @@ static void pr_out_eswitch(struct dl *dl, struct nlattr **tb)
static int cmd_dev_eswitch_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -146,7 +146,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -2293,7 +2293,7 @@ static const struct param_val_conv param_val_conv[] = {
+@@ -2369,7 +2369,7 @@ static const struct param_val_conv param_val_conv[] = {
static void pr_out_param_value(struct dl *dl, const char *nla_name,
int nla_type, struct nlattr *nl)
{
@@ -155,7 +155,7 @@ index f9e58c1d..ae54374e 100644
struct nlattr *val_attr;
const char *vstr;
bool conv_exists;
-@@ -2375,7 +2375,7 @@ static void pr_out_param_value(struct dl *dl, const char *nla_name,
+@@ -2451,7 +2451,7 @@ static void pr_out_param_value(struct dl *dl, const char *nla_name,
static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array)
{
@@ -164,7 +164,7 @@ index f9e58c1d..ae54374e 100644
struct nlattr *param_value_attr;
const char *nla_name;
int nla_type;
-@@ -2418,7 +2418,7 @@ static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array)
+@@ -2494,7 +2494,7 @@ static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array)
static int cmd_dev_param_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -173,7 +173,7 @@ index f9e58c1d..ae54374e 100644
struct dl *dl = data;
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -2444,8 +2444,8 @@ struct param_ctx {
+@@ -2520,8 +2520,8 @@ struct param_ctx {
static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -184,7 +184,7 @@ index f9e58c1d..ae54374e 100644
struct nlattr *param_value_attr;
enum devlink_param_cmode cmode;
struct param_ctx *ctx = data;
-@@ -2469,7 +2469,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
+@@ -2545,7 +2545,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
nla_type = mnl_attr_get_u8(nla_param[DEVLINK_ATTR_PARAM_TYPE]);
mnl_attr_for_each_nested(param_value_attr,
nla_param[DEVLINK_ATTR_PARAM_VALUES_LIST]) {
@@ -193,7 +193,7 @@ index f9e58c1d..ae54374e 100644
struct nlattr *val_attr;
err = mnl_attr_parse_nested(param_value_attr,
-@@ -2511,7 +2511,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
+@@ -2587,7 +2587,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_dev_param_set(struct dl *dl)
{
@@ -202,7 +202,7 @@ index f9e58c1d..ae54374e 100644
struct nlmsghdr *nlh;
bool conv_exists;
uint32_t val_u32;
-@@ -2666,7 +2666,7 @@ static int cmd_dev_param(struct dl *dl)
+@@ -2742,7 +2742,7 @@ static int cmd_dev_param(struct dl *dl)
static int cmd_dev_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -211,7 +211,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
uint8_t reload_failed = 0;
-@@ -2743,7 +2743,7 @@ static void pr_out_versions_single(struct dl *dl, const struct nlmsghdr *nlh,
+@@ -2814,7 +2814,7 @@ static void pr_out_versions_single(struct dl *dl, const struct nlmsghdr *nlh,
struct nlattr *version;
mnl_attr_for_each(version, nlh, sizeof(struct genlmsghdr)) {
@@ -220,7 +220,7 @@ index f9e58c1d..ae54374e 100644
const char *ver_value;
const char *ver_name;
int err;
-@@ -2823,7 +2823,7 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh,
+@@ -2894,7 +2894,7 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh,
static int cmd_versions_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -229,7 +229,7 @@ index f9e58c1d..ae54374e 100644
bool has_versions, has_info;
struct dl *dl = data;
-@@ -3228,7 +3228,7 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
+@@ -3290,7 +3290,7 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
static int cmd_port_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -238,7 +238,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3372,7 +3372,7 @@ static void pr_out_sb(struct dl *dl, struct nlattr **tb)
+@@ -3434,7 +3434,7 @@ static void pr_out_sb(struct dl *dl, struct nlattr **tb)
static int cmd_sb_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -247,7 +247,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3451,7 +3451,7 @@ static void pr_out_sb_pool(struct dl *dl, struct nlattr **tb)
+@@ -3513,7 +3513,7 @@ static void pr_out_sb_pool(struct dl *dl, struct nlattr **tb)
static int cmd_sb_pool_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -256,7 +256,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3537,7 +3537,7 @@ static void pr_out_sb_port_pool(struct dl *dl, struct nlattr **tb)
+@@ -3599,7 +3599,7 @@ static void pr_out_sb_port_pool(struct dl *dl, struct nlattr **tb)
static int cmd_sb_port_pool_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -265,7 +265,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3640,7 +3640,7 @@ static void pr_out_sb_tc_bind(struct dl *dl, struct nlattr **tb)
+@@ -3702,7 +3702,7 @@ static void pr_out_sb_tc_bind(struct dl *dl, struct nlattr **tb)
static int cmd_sb_tc_bind_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -274,7 +274,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3928,7 +3928,7 @@ static void cmd_sb_occ_port_pool_process(struct occ_show *occ_show,
+@@ -3990,7 +3990,7 @@ static void cmd_sb_occ_port_pool_process(struct occ_show *occ_show,
static int cmd_sb_occ_port_pool_process_cb(const struct nlmsghdr *nlh, void *data)
{
struct occ_show *occ_show = data;
@@ -283,7 +283,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3979,7 +3979,7 @@ static void cmd_sb_occ_tc_pool_process(struct occ_show *occ_show,
+@@ -4041,7 +4041,7 @@ static void cmd_sb_occ_tc_pool_process(struct occ_show *occ_show,
static int cmd_sb_occ_tc_pool_process_cb(const struct nlmsghdr *nlh, void *data)
{
struct occ_show *occ_show = data;
@@ -292,7 +292,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -4237,7 +4237,7 @@ static void pr_out_trap_group(struct dl *dl, struct nlattr **tb, bool array);
+@@ -4327,7 +4327,7 @@ static void pr_out_trap_policer(struct dl *dl, struct nlattr **tb, bool array);
static int cmd_mon_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -301,7 +301,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
uint8_t cmd = genl->cmd;
-@@ -4729,7 +4729,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx,
+@@ -4854,7 +4854,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx,
static int dpipe_header_field_get(struct nlattr *nl, struct dpipe_field *field)
{
@@ -310,7 +310,7 @@ index f9e58c1d..ae54374e 100644
const char *name;
int err;
-@@ -4780,7 +4780,7 @@ static unsigned int dpipe_header_field_count_get(struct nlattr *nla_fields)
+@@ -4905,7 +4905,7 @@ static unsigned int dpipe_header_field_count_get(struct nlattr *nla_fields)
static int dpipe_header_get(struct dpipe_ctx *ctx, struct nlattr *nl)
{
@@ -319,7 +319,7 @@ index f9e58c1d..ae54374e 100644
struct dpipe_header *header;
unsigned int fields_count;
const char *header_name;
-@@ -4836,7 +4836,7 @@ static int dpipe_headers_get(struct dpipe_ctx *ctx, struct nlattr **tb)
+@@ -4961,7 +4961,7 @@ static int dpipe_headers_get(struct dpipe_ctx *ctx, struct nlattr **tb)
static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
{
struct dpipe_ctx *ctx = data;
@@ -328,7 +328,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
int err;
-@@ -4858,7 +4858,7 @@ static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
+@@ -4983,7 +4983,7 @@ static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_dpipe_headers_show(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -337,7 +337,7 @@ index f9e58c1d..ae54374e 100644
uint16_t flags = NLM_F_REQUEST | NLM_F_ACK;
int err;
-@@ -4949,7 +4949,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action,
+@@ -5078,7 +5078,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action,
static int dpipe_action_parse(struct dpipe_action *action, struct nlattr *nl)
{
@@ -346,7 +346,7 @@ index f9e58c1d..ae54374e 100644
int err;
err = mnl_attr_parse_nested(nl, attr_cb, nla_action);
-@@ -5034,7 +5034,7 @@ static int dpipe_match_parse(struct dpipe_match *match,
+@@ -5163,7 +5163,7 @@ static int dpipe_match_parse(struct dpipe_match *match,
struct nlattr *nl)
{
@@ -355,7 +355,7 @@ index f9e58c1d..ae54374e 100644
int err;
err = mnl_attr_parse_nested(nl, attr_cb, nla_match);
-@@ -5139,7 +5139,7 @@ resource_path_print(struct dl *dl, struct resources *resources,
+@@ -5268,7 +5268,7 @@ resource_path_print(struct dl *dl, struct resources *resources,
static int dpipe_table_show(struct dpipe_ctx *ctx, struct nlattr *nl)
{
@@ -364,7 +364,7 @@ index f9e58c1d..ae54374e 100644
struct dpipe_table *table;
uint32_t resource_units;
bool counters_enabled;
-@@ -5233,7 +5233,7 @@ err_table_show:
+@@ -5362,7 +5362,7 @@ err_table_show:
static int cmd_dpipe_table_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dpipe_ctx *ctx = data;
@@ -373,7 +373,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -5251,8 +5251,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data);
+@@ -5380,8 +5380,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data);
static int cmd_dpipe_table_show(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -384,7 +384,7 @@ index f9e58c1d..ae54374e 100644
uint16_t flags = NLM_F_REQUEST;
int err;
-@@ -5509,7 +5509,7 @@ static void pr_out_dpipe_entry_value(struct dpipe_ctx *ctx,
+@@ -5638,7 +5638,7 @@ static void pr_out_dpipe_entry_value(struct dpipe_ctx *ctx,
static int dpipe_entry_match_value_show(struct dpipe_ctx *ctx,
struct nlattr *nl)
{
@@ -393,7 +393,7 @@ index f9e58c1d..ae54374e 100644
struct dpipe_match match;
int err;
-@@ -5540,7 +5540,7 @@ err_match_parse:
+@@ -5669,7 +5669,7 @@ err_match_parse:
static int dpipe_entry_action_value_show(struct dpipe_ctx *ctx,
struct nlattr *nl)
{
@@ -402,7 +402,7 @@ index f9e58c1d..ae54374e 100644
struct dpipe_action action;
int err;
-@@ -5596,7 +5596,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx,
+@@ -5725,7 +5725,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx,
static int dpipe_entry_show(struct dpipe_ctx *ctx, struct nlattr *nl)
{
@@ -411,7 +411,7 @@ index f9e58c1d..ae54374e 100644
uint32_t entry_index;
uint64_t counter;
int err;
-@@ -5660,7 +5660,7 @@ err_entry_show:
+@@ -5789,7 +5789,7 @@ err_entry_show:
static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
{
struct dpipe_ctx *ctx = data;
@@ -420,7 +420,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -5676,7 +5676,7 @@ static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
+@@ -5805,7 +5805,7 @@ static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_dpipe_table_dump(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -429,7 +429,7 @@ index f9e58c1d..ae54374e 100644
uint16_t flags = NLM_F_REQUEST;
int err;
-@@ -5797,7 +5797,7 @@ static int
+@@ -5914,7 +5914,7 @@ static int
resource_get(struct resource_ctx *ctx, struct resource *resource,
struct resource *parent_resource, struct nlattr *nl)
{
@@ -438,7 +438,7 @@ index f9e58c1d..ae54374e 100644
struct nlattr *nla_child_resource;
struct nlattr *nla_resources;
bool top = false;
-@@ -5945,7 +5945,7 @@ static int resources_get(struct resource_ctx *ctx, struct nlattr **tb)
+@@ -6062,7 +6062,7 @@ static int resources_get(struct resource_ctx *ctx, struct nlattr **tb)
static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
{
struct resource_ctx *ctx = data;
@@ -447,7 +447,7 @@ index f9e58c1d..ae54374e 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
int err;
-@@ -5969,8 +5969,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
+@@ -6086,8 +6086,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_resource_show(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -458,7 +458,7 @@ index f9e58c1d..ae54374e 100644
int err;
err = dl_argv_parse(dl, DL_OPT_HANDLE, 0);
-@@ -6065,7 +6065,7 @@ err_resource_lookup:
+@@ -6182,7 +6182,7 @@ err_resource_lookup:
static int cmd_resource_set(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -467,7 +467,7 @@ index f9e58c1d..ae54374e 100644
int err;
err = resource_ctx_init(&ctx, dl);
-@@ -6177,7 +6177,7 @@ static void pr_out_region_snapshots_id(struct dl *dl, struct nlattr **tb, int in
+@@ -6294,7 +6294,7 @@ static void pr_out_region_snapshots_id(struct dl *dl, struct nlattr **tb, int in
static void pr_out_snapshots(struct dl *dl, struct nlattr **tb)
{
@@ -476,7 +476,7 @@ index f9e58c1d..ae54374e 100644
struct nlattr *nla_sanpshot;
int err, index = 0;
-@@ -6218,7 +6218,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb)
+@@ -6335,7 +6335,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb)
static int cmd_region_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -485,7 +485,7 @@ index f9e58c1d..ae54374e 100644
struct dl *dl = data;
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -6274,8 +6274,8 @@ static int cmd_region_read_cb(const struct nlmsghdr *nlh, void *data)
+@@ -6391,8 +6391,8 @@ static int cmd_region_read_cb(const struct nlmsghdr *nlh, void *data)
{
struct nlattr *nla_entry, *nla_chunk_data, *nla_chunk_addr;
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -496,7 +496,7 @@ index f9e58c1d..ae54374e 100644
struct dl *dl = data;
int err;
-@@ -6580,7 +6580,7 @@ static int cmd_fmsg_nest(struct fmsg_cb_data *fmsg_data, uint8_t nest_value,
+@@ -6717,7 +6717,7 @@ static int cmd_fmsg_nest(struct fmsg_cb_data *fmsg_data, uint8_t nest_value,
static int cmd_fmsg_object_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -505,7 +505,7 @@ index f9e58c1d..ae54374e 100644
struct fmsg_cb_data *fmsg_data = data;
struct dl *dl = fmsg_data->dl;
struct nlattr *nla_object;
-@@ -6761,7 +6761,7 @@ static void pr_out_dump_report_timestamp(struct dl *dl, const struct nlattr *att
+@@ -6898,7 +6898,7 @@ static void pr_out_dump_report_timestamp(struct dl *dl, const struct nlattr *att
static void pr_out_health(struct dl *dl, struct nlattr **tb_health)
{
@@ -514,7 +514,7 @@ index f9e58c1d..ae54374e 100644
enum devlink_health_reporter_state state;
int err;
-@@ -6810,7 +6810,7 @@ static void pr_out_health(struct dl *dl, struct nlattr **tb_health)
+@@ -6947,7 +6947,7 @@ static void pr_out_health(struct dl *dl, struct nlattr **tb_health)
static int cmd_health_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -660,10 +660,10 @@ index 735ab941..82060bf4 100644
while (argc > 0) {
diff --git a/ip/ipmacsec.c b/ip/ipmacsec.c
-index ad6ad7d6..1512823a 100644
+index 4e500e4e..c81927b6 100644
--- a/ip/ipmacsec.c
+++ b/ip/ipmacsec.c
-@@ -958,7 +958,7 @@ static int process(struct nlmsghdr *n, void *arg)
+@@ -1022,7 +1022,7 @@ static int process(struct nlmsghdr *n, void *arg)
if (ghdr->cmd != MACSEC_CMD_GET_TXSC)
return 0;
@@ -869,7 +869,7 @@ index d3c706d3..3cbfc4be 100644
while (argc > 0) {
if (strcmp(*argv, "ptype") == 0) {
diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
-index d68f600a..88362e8c 100644
+index f4bf3356..821763f3 100644
--- a/ip/xfrm_state.c
+++ b/ip/xfrm_state.c
@@ -305,9 +305,9 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv)
@@ -913,7 +913,7 @@ index d68f600a..88362e8c 100644
__u32 icvlen, trunclen;
char *name;
diff --git a/lib/bpf.c b/lib/bpf.c
-index 10cf9bf4..f4ac5f16 100644
+index c7d45077..5d620f40 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -148,7 +148,7 @@ static int bpf(int cmd, union bpf_attr *attr, unsigned int size)
@@ -952,7 +952,7 @@ index 10cf9bf4..f4ac5f16 100644
uint32_t len = sizeof(info);
int fd, ret, dump_ok = 0;
SPRINT_BUF(tmp);
-@@ -457,7 +457,7 @@ static int bpf_map_selfcheck_pinned(int fd, const struct bpf_elf_map *map,
+@@ -449,7 +449,7 @@ static int bpf_map_selfcheck_pinned(int fd, const struct bpf_elf_map *map,
struct bpf_map_ext *ext, int length,
enum bpf_prog_type type)
{
@@ -961,7 +961,7 @@ index 10cf9bf4..f4ac5f16 100644
int ret;
ret = bpf_derive_elf_map_from_fdinfo(fd, &tmp, ext);
-@@ -518,7 +518,7 @@ static int bpf_mnt_fs(const char *target)
+@@ -510,7 +510,7 @@ static int bpf_mnt_fs(const char *target)
static int bpf_mnt_check_target(const char *target)
{
@@ -970,16 +970,16 @@ index 10cf9bf4..f4ac5f16 100644
int ret;
ret = stat(target, &sb);
-@@ -722,7 +722,7 @@ static int bpf_gen_slave(const char *base, const char *name,
+@@ -694,7 +694,7 @@ static int bpf_gen_slave(const char *base, const char *name,
{
- char *bpf_lnk_dir = NULL;
- char *bpf_sub_dir = NULL;
+ char bpf_lnk_dir[PATH_MAX + NAME_MAX + 1];
+ char bpf_sub_dir[PATH_MAX + NAME_MAX];
- struct stat sb = {};
+ struct stat sb = {0};
int ret;
- ret = asprintf(&bpf_lnk_dir, "%s%s/", base, link);
-@@ -844,7 +844,7 @@ out:
+ snprintf(bpf_lnk_dir, sizeof(bpf_lnk_dir), "%s%s/", base, link);
+@@ -801,7 +801,7 @@ out:
static int bpf_obj_get(const char *pathname, enum bpf_prog_type type)
{
@@ -988,7 +988,7 @@ index 10cf9bf4..f4ac5f16 100644
char tmp[PATH_MAX];
if (strlen(pathname) > 2 && pathname[0] == 'm' &&
-@@ -1015,7 +1015,7 @@ int bpf_load_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops,
+@@ -972,7 +972,7 @@ int bpf_load_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops,
int bpf_parse_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops)
{
@@ -997,7 +997,7 @@ index 10cf9bf4..f4ac5f16 100644
if (ops->cbpf_cb) {
opt_tbl[CBPF_BYTECODE] = true;
-@@ -1058,7 +1058,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
+@@ -1015,7 +1015,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
.argc = argc,
.argv = argv,
};
@@ -1006,7 +1006,7 @@ index 10cf9bf4..f4ac5f16 100644
int ret, prog_fd, map_fd;
uint32_t map_key;
-@@ -1111,7 +1111,7 @@ out_prog:
+@@ -1068,7 +1068,7 @@ out_prog:
int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
{
@@ -1015,7 +1015,7 @@ index 10cf9bf4..f4ac5f16 100644
attr.target_fd = target_fd;
attr.attach_bpf_fd = prog_fd;
-@@ -1122,7 +1122,7 @@ int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
+@@ -1079,7 +1079,7 @@ int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type)
{
@@ -1024,7 +1024,7 @@ index 10cf9bf4..f4ac5f16 100644
attr.target_fd = target_fd;
attr.attach_type = type;
-@@ -1135,7 +1135,7 @@ static int bpf_prog_load_dev(enum bpf_prog_type type,
+@@ -1092,7 +1092,7 @@ static int bpf_prog_load_dev(enum bpf_prog_type type,
const char *license, __u32 ifindex,
char *log, size_t size_log)
{
@@ -1033,7 +1033,7 @@ index 10cf9bf4..f4ac5f16 100644
attr.prog_type = type;
attr.insns = bpf_ptr_to_u64(insns);
-@@ -1298,7 +1298,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
+@@ -1255,7 +1255,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
uint32_t ifindex, uint32_t btf_id_key,
uint32_t btf_id_val)
{
@@ -1042,7 +1042,7 @@ index 10cf9bf4..f4ac5f16 100644
attr.map_type = type;
attr.key_size = size_key;
-@@ -1317,7 +1317,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
+@@ -1274,7 +1274,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
static int bpf_btf_load(void *btf, size_t size_btf,
char *log, size_t size_log)
{
@@ -1051,7 +1051,7 @@ index 10cf9bf4..f4ac5f16 100644
attr.btf = bpf_ptr_to_u64(btf);
attr.btf_size = size_btf;
-@@ -1333,7 +1333,7 @@ static int bpf_btf_load(void *btf, size_t size_btf,
+@@ -1290,7 +1290,7 @@ static int bpf_btf_load(void *btf, size_t size_btf,
static int bpf_obj_pin(int fd, const char *pathname)
{
@@ -1060,7 +1060,7 @@ index 10cf9bf4..f4ac5f16 100644
attr.pathname = bpf_ptr_to_u64(pathname);
attr.bpf_fd = fd;
-@@ -2039,7 +2039,7 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
+@@ -1975,7 +1975,7 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
static int bpf_fetch_maps_end(struct bpf_elf_ctx *ctx)
{
@@ -1069,7 +1069,7 @@ index 10cf9bf4..f4ac5f16 100644
int i, sym_num = bpf_map_num_sym(ctx);
__u8 *buff;
-@@ -2545,7 +2545,7 @@ static int bpf_fetch_prog_relo(struct bpf_elf_ctx *ctx, const char *section,
+@@ -2481,7 +2481,7 @@ static int bpf_fetch_prog_relo(struct bpf_elf_ctx *ctx, const char *section,
int ret, idx, i, fd = -1;
for (i = 1; i < ctx->elf_hdr.e_shnum; i++) {
@@ -1078,7 +1078,7 @@ index 10cf9bf4..f4ac5f16 100644
ret = bpf_fill_section_data(ctx, i, &data_relo);
if (ret < 0 || data_relo.sec_hdr.sh_type != SHT_REL)
-@@ -2729,7 +2729,7 @@ static int bpf_fill_prog_arrays(struct bpf_elf_ctx *ctx)
+@@ -2656,7 +2656,7 @@ static int bpf_fill_prog_arrays(struct bpf_elf_ctx *ctx)
ret = bpf_map_update(ctx->map_fds[idx], &key_id,
&fd, BPF_ANY);
if (ret < 0) {
@@ -1087,7 +1087,7 @@ index 10cf9bf4..f4ac5f16 100644
ret = -errno;
if (errno == E2BIG) {
-@@ -2820,7 +2820,7 @@ static bool bpf_pinning_reserved(uint32_t pinning)
+@@ -2747,7 +2747,7 @@ static bool bpf_pinning_reserved(uint32_t pinning)
static void bpf_hash_init(struct bpf_elf_ctx *ctx, const char *db_file)
{
struct bpf_hash_entry *entry;
@@ -1096,7 +1096,7 @@ index 10cf9bf4..f4ac5f16 100644
uint32_t pinning;
FILE *fp;
int ret;
-@@ -2918,7 +2918,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx)
+@@ -2845,7 +2845,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx)
fd = open(path_jit, O_RDONLY);
if (fd > 0) {
@@ -1163,10 +1163,10 @@ index 504961cb..ac412e29 100644
for (i = 0; i < ifnum; i++) {
if (get_ifname(ifr.ifr_name, ifnames[i]))
diff --git a/misc/ss.c b/misc/ss.c
-index 3ef151fb..23980695 100644
+index 75fde231..039f284c 100644
--- a/misc/ss.c
+++ b/misc/ss.c
-@@ -2628,7 +2628,7 @@ static void sctp_timer_print(struct tcpstat *s)
+@@ -2637,7 +2637,7 @@ static void sctp_timer_print(struct tcpstat *s)
static int tcp_show_line(char *line, const struct filter *f, int family)
{
int rto = 0, ato = 0;
@@ -1175,7 +1175,7 @@ index 3ef151fb..23980695 100644
char *loc, *rem, *data;
char opt[256];
int n;
-@@ -2842,7 +2842,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
+@@ -2851,7 +2851,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
struct rtattr *tb[])
{
double rtt = 0;
@@ -1184,7 +1184,7 @@ index 3ef151fb..23980695 100644
s.ss.state = r->idiag_state;
-@@ -3128,7 +3128,7 @@ static int inet_show_sock(struct nlmsghdr *nlh,
+@@ -3137,7 +3137,7 @@ static int inet_show_sock(struct nlmsghdr *nlh,
inet_stats_print(s, v6only);
if (show_options) {
@@ -1193,7 +1193,7 @@ index 3ef151fb..23980695 100644
t.timer = r->idiag_timer;
t.timeout = r->idiag_expires;
-@@ -3350,7 +3350,7 @@ static int show_one_inet_sock(struct nlmsghdr *h, void *arg)
+@@ -3359,7 +3359,7 @@ static int show_one_inet_sock(struct nlmsghdr *h, void *arg)
int err;
struct inet_diag_arg *diag_arg = arg;
struct inet_diag_msg *r = NLMSG_DATA(h);
@@ -1202,7 +1202,7 @@ index 3ef151fb..23980695 100644
if (!(diag_arg->f->families & FAMILY_MASK(r->idiag_family)))
return 0;
-@@ -3439,7 +3439,7 @@ static int tcp_show_netlink_file(struct filter *f)
+@@ -3448,7 +3448,7 @@ static int tcp_show_netlink_file(struct filter *f)
int err2;
size_t status, nitems;
struct nlmsghdr *h = (struct nlmsghdr *)buf;
@@ -1211,7 +1211,7 @@ index 3ef151fb..23980695 100644
status = fread(buf, 1, sizeof(*h), fp);
if (status != sizeof(*h)) {
-@@ -3584,7 +3584,7 @@ static int sctp_show(struct filter *f)
+@@ -3593,7 +3593,7 @@ static int sctp_show(struct filter *f)
static int dgram_show_line(char *line, const struct filter *f, int family)
{
@@ -1220,7 +1220,7 @@ index 3ef151fb..23980695 100644
char *loc, *rem, *data;
char opt[256];
int n;
-@@ -3724,7 +3724,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f)
+@@ -3733,7 +3733,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f)
static void unix_stats_print(struct sockstat *s, struct filter *f)
{
@@ -1229,7 +1229,7 @@ index 3ef151fb..23980695 100644
sock_state_print(s);
-@@ -4037,7 +4037,7 @@ static int packet_show_sock(struct nlmsghdr *nlh, void *arg)
+@@ -4046,7 +4046,7 @@ static int packet_show_sock(struct nlmsghdr *nlh, void *arg)
struct packet_diag_info *pinfo = NULL;
struct packet_diag_ring *ring_rx = NULL, *ring_tx = NULL;
struct rtattr *tb[PACKET_DIAG_MAX+1];
@@ -1238,7 +1238,7 @@ index 3ef151fb..23980695 100644
uint32_t fanout = 0;
bool has_fanout = false;
-@@ -4186,7 +4186,7 @@ static int packet_show_netlink(struct filter *f)
+@@ -4195,7 +4195,7 @@ static int packet_show_netlink(struct filter *f)
static int packet_show_line(char *buf, const struct filter *f, int fam)
{
unsigned long long sk;
@@ -1247,7 +1247,7 @@ index 3ef151fb..23980695 100644
int type, prot, iface, state, rq, uid, ino;
sscanf(buf, "%llx %*d %d %x %d %d %u %u %u",
-@@ -4310,7 +4310,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg)
+@@ -4319,7 +4319,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg)
struct xdp_diag_info *info = NULL;
struct xdp_diag_umem *umem = NULL;
const struct filter *f = arg;
@@ -1256,7 +1256,7 @@ index 3ef151fb..23980695 100644
parse_rtattr(tb, XDP_DIAG_MAX, (struct rtattr *)(msg + 1),
nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*msg)));
-@@ -4391,9 +4391,9 @@ static int netlink_show_one(struct filter *f,
+@@ -4400,9 +4400,9 @@ static int netlink_show_one(struct filter *f,
.remote.family = AF_NETLINK,
};
@@ -1268,7 +1268,7 @@ index 3ef151fb..23980695 100644
if (f->f) {
st.rport = -1;
-@@ -4640,8 +4640,8 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
+@@ -4649,8 +4649,8 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
uint32_t node = rta_getattr_u32(net_addr);
uint32_t identity = rta_getattr_u32(id);
@@ -1279,7 +1279,7 @@ index 3ef151fb..23980695 100644
sprintf(addr, "%u", node);
sprintf(port, "%u", identity);
-@@ -4651,12 +4651,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
+@@ -4660,12 +4660,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
static int tipc_show_sock(struct nlmsghdr *nlh, void *arg)
{
@@ -1692,7 +1692,7 @@ index e8d704b5..7ecd86ef 100644
struct rtattr *tail;
int argc, ret = 0;
diff --git a/tc/m_connmark.c b/tc/m_connmark.c
-index eac23489..dc353a44 100644
+index 4b2dc4e2..3d5a203e 100644
--- a/tc/m_connmark.c
+++ b/tc/m_connmark.c
@@ -46,7 +46,7 @@ static int
@@ -1734,7 +1734,7 @@ index d2bdf407..deb4ce5e 100644
while (argc > 0) {
diff --git a/tc/m_nat.c b/tc/m_nat.c
-index c4b02a83..59af9894 100644
+index 56e8f47c..ef8f75fb 100644
--- a/tc/m_nat.c
+++ b/tc/m_nat.c
@@ -83,7 +83,7 @@ bad_val:
@@ -1782,7 +1782,7 @@ index 70897d6b..6793e6f5 100644
char **argv = *argv_p;
int ok = 0;
diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c
-index 8fde6891..9de689f6 100644
+index 1f6921f3..f53ba9aa 100644
--- a/tc/m_tunnel_key.c
+++ b/tc/m_tunnel_key.c
@@ -209,7 +209,7 @@ static int tunnel_key_parse_tos_ttl(char *str, int type, struct nlmsghdr *n)
@@ -1916,10 +1916,10 @@ index 61493fbb..b4fa76ae 100644
while (argc > 0) {
if (strcmp(*argv, "limit") == 0) {
diff --git a/tc/q_fq_codel.c b/tc/q_fq_codel.c
-index efed4d28..4f421784 100644
+index 1a51302e..6d94af44 100644
--- a/tc/q_fq_codel.c
+++ b/tc/q_fq_codel.c
-@@ -227,7 +227,7 @@ static int fq_codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt
+@@ -244,7 +244,7 @@ static int fq_codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt
static int fq_codel_print_xstats(struct qdisc_util *qu, FILE *f,
struct rtattr *xstats)
{
@@ -2029,13 +2029,13 @@ index d01450fc..42677a29 100644
for ( ; argc > 0; --argc, ++argv) {
diff --git a/tc/q_red.c b/tc/q_red.c
-index 6256420f..13e68714 100644
+index 53181c82..30008c68 100644
--- a/tc/q_red.c
+++ b/tc/q_red.c
-@@ -36,7 +36,7 @@ static void explain(void)
- static int red_parse_opt(struct qdisc_util *qu, int argc, char **argv,
- struct nlmsghdr *n, const char *dev)
- {
+@@ -41,7 +41,7 @@ static int red_parse_opt(struct qdisc_util *qu, int argc, char **argv,
+ struct nla_bitfield32 flags_bf = {
+ .selector = RED_SUPPORTED_FLAGS,
+ };
- struct tc_red_qopt opt = {};
+ struct tc_red_qopt opt = {0};
unsigned int burst = 0;
@@ -2230,7 +2230,7 @@ index c0f1f160..45a6b184 100644
NEXT_ARG();
if (matches(*argv, "help") == 0) {
diff --git a/tc/tc_util.c b/tc/tc_util.c
-index 5f13d729..3a8c61fc 100644
+index fd5fcb24..fcb55415 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -129,7 +129,7 @@ ok:
@@ -2251,7 +2251,7 @@ index 5f13d729..3a8c61fc 100644
if (id_to_name(cls_names, h, clname))
snprintf(buf, blen, "%s#%s", clname, handle);
-@@ -895,7 +895,7 @@ void print_tcstats_attr(FILE *fp, struct rtattr *tb[], char *prefix,
+@@ -896,7 +896,7 @@ void print_tcstats_attr(FILE *fp, struct rtattr *tb[], char *prefix,
}
/* backward compatibility */
if (tb[TCA_STATS]) {
@@ -2554,5 +2554,5 @@ index 852984ec..c6bf518b 100644
mnl_attr_parse_nested(attrs[TIPC_NLA_SOCK_CON], parse_attrs, con);
node = mnl_attr_get_u32(con[TIPC_NLA_CON_NODE]);
--
-2.26.0
+2.27.0
diff --git a/pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch b/pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch
@@ -1,4 +1,4 @@
-From d575dcbe5b779829881974623d2585481e71c38e Mon Sep 17 00:00:00 2001
+From f75cda0aa33f331ce78eb3a5f9ef150a474534c6 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 16 Jun 2019 12:39:04 -0700
Subject: [PATCH] Remove semicolon after function definitions
@@ -8,12 +8,12 @@ Subject: [PATCH] Remove semicolon after function definitions
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/lib/json_print.c b/lib/json_print.c
-index 8e7f32dc..8929e4d8 100644
+index fe0705bf..ecaab98b 100644
--- a/lib/json_print.c
+++ b/lib/json_print.c
-@@ -138,15 +138,15 @@ void close_json_array(enum output_type type, const char *str)
- color_fprintf(stdout, color, fmt, value); \
+@@ -140,15 +140,15 @@ void close_json_array(enum output_type type, const char *str)
} \
+ return ret; \
}
-_PRINT_FUNC(int, int);
-_PRINT_FUNC(s64, int64_t);
@@ -36,7 +36,7 @@ index 8e7f32dc..8929e4d8 100644
#undef _PRINT_FUNC
#define _PRINT_NAME_VALUE_FUNC(type_name, type, format_char) \
-@@ -158,8 +158,8 @@ _PRINT_FUNC(float, double);
+@@ -160,8 +160,8 @@ _PRINT_FUNC(float, double);
"%s %%"#format_char, name); \
print_##type_name(PRINT_ANY, name, format, value); \
}
@@ -46,7 +46,7 @@ index 8e7f32dc..8929e4d8 100644
+_PRINT_NAME_VALUE_FUNC(string, const char*, s)
#undef _PRINT_NAME_VALUE_FUNC
- void print_color_string(enum output_type type,
+ int print_color_string(enum output_type type,
--
-2.25.0
+2.27.0
diff --git a/pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch b/pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch
@@ -1,4 +1,4 @@
-From 9c2f01584da75c3004075d0d25ea21ccbb9db277 Mon Sep 17 00:00:00 2001
+From 768924ca1f8cf3a7968da70af6b47aa312011f74 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 16 Jun 2019 12:39:40 -0700
Subject: [PATCH] Don't omit second operand to '?' operator
@@ -70,10 +70,10 @@ index f1bf0b18..41fa1649 100644
print_uint(PRINT_ANY, "pid",
"(%d)", pid);
diff --git a/lib/bpf.c b/lib/bpf.c
-index f4ac5f16..a25a4bbc 100644
+index 5d620f40..223fb232 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
-@@ -813,7 +813,7 @@ static const char *bpf_get_work_dir(enum bpf_prog_type type)
+@@ -771,7 +771,7 @@ static const char *bpf_get_work_dir(enum bpf_prog_type type)
mnt = bpf_find_mntpt("bpf", BPF_FS_MAGIC, bpf_tmp,
sizeof(bpf_tmp), bpf_known_mnts);
if (!mnt) {
@@ -83,7 +83,7 @@ index f4ac5f16..a25a4bbc 100644
if (!ret)
ret = bpf_mnt_fs(mnt);
diff --git a/lib/utils.c b/lib/utils.c
-index d02bc32d..49b5b1ec 100644
+index 063a0611..b863af6f 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -943,8 +943,10 @@ int __get_hz(void)
@@ -108,7 +108,7 @@ index d02bc32d..49b5b1ec 100644
return hz;
return HZ;
diff --git a/misc/ss.c b/misc/ss.c
-index 23980695..bc6b4a8b 100644
+index 039f284c..1801bc5c 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -483,7 +483,9 @@ static FILE *generic_proc_open(const char *env, const char *name)
@@ -154,7 +154,7 @@ index 23980695..bc6b4a8b 100644
}
if (is_port)
-@@ -3728,9 +3737,9 @@ static void unix_stats_print(struct sockstat *s, struct filter *f)
+@@ -3737,9 +3746,9 @@ static void unix_stats_print(struct sockstat *s, struct filter *f)
sock_state_print(s);
@@ -166,7 +166,7 @@ index 23980695..bc6b4a8b 100644
int_to_str(s->rport, port_name), NULL);
proc_ctx_print(s);
-@@ -3933,7 +3942,7 @@ static int unix_show(struct filter *f)
+@@ -3942,7 +3951,7 @@ static int unix_show(struct filter *f)
if (!p)
u->peer_name = "?";
else
@@ -175,7 +175,7 @@ index 23980695..bc6b4a8b 100644
}
if (f->f) {
-@@ -4417,9 +4426,10 @@ static int netlink_show_one(struct filter *f,
+@@ -4426,9 +4435,10 @@ static int netlink_show_one(struct filter *f,
strncpy(procname, "kernel", 7);
} else if (pid > 0) {
FILE *fp;
@@ -187,7 +187,7 @@ index 23980695..bc6b4a8b 100644
if ((fp = fopen(procname, "r")) != NULL) {
if (fscanf(fp, "%*d (%[^)])", procname) == 1) {
snprintf(procname+strlen(procname),
-@@ -4462,7 +4472,7 @@ static int netlink_show_one(struct filter *f,
+@@ -4471,7 +4481,7 @@ static int netlink_show_one(struct filter *f,
else if (pid > 0)
getpidcon(pid, &pid_context);
@@ -197,5 +197,5 @@ index 23980695..bc6b4a8b 100644
}
--
-2.26.0
+2.27.0
diff --git a/pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch b/pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch
@@ -1,4 +1,4 @@
-From 073eca7960250e99c4c6d8c135491c4c85269652 Mon Sep 17 00:00:00 2001
+From 0a32cd776d53b6f2d99e4faae19def38f9354ee9 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Mon, 24 Jun 2019 16:48:56 -0700
Subject: [PATCH] Use alloca instead of VLA when VLA is not available
@@ -8,7 +8,7 @@ Subject: [PATCH] Use alloca instead of VLA when VLA is not available
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
-index 4b1fba8f..648df0fb 100644
+index 6be96503..cb76a763 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -249,7 +249,12 @@ static void print_linktype(FILE *fp, struct rtattr *tb)
@@ -16,7 +16,7 @@ index 4b1fba8f..648df0fb 100644
lu = get_link_kind(kind);
if (lu && lu->print_opt) {
- struct rtattr *attr[lu->maxattr+1], **data = NULL;
-+#ifndef __STDC_NO_VLA
++#ifndef __STDC_NO_VLA__
+ struct rtattr **attr = alloca((lu->maxattr+1)*sizeof(attr[0]));
+#else
+ struct rtattr *attr[lu->maxattr+1];
@@ -30,7 +30,7 @@ index 4b1fba8f..648df0fb 100644
slave_lu = get_link_kind(slave);
if (slave_lu && slave_lu->print_opt) {
- struct rtattr *attr[slave_lu->maxattr+1], **data = NULL;
-+#ifndef __STDC_NO_VLA
++#ifndef __STDC_NO_VLA__
+ struct rtattr **attr = alloca((slave_lu->maxattr+1)*sizeof(attr[0]));
+#else
+ struct rtattr *attr[slave_lu->maxattr+1];
@@ -40,5 +40,5 @@ index 4b1fba8f..648df0fb 100644
if (linkinfo[IFLA_INFO_SLAVE_DATA]) {
parse_rtattr_nested(attr, slave_lu->maxattr,
--
-2.23.0
+2.27.0
diff --git a/pkg/iproute2/ver b/pkg/iproute2/ver
@@ -1 +1 @@
-5.6.0 r0
+5.7.0 r0