Merge branch 'iproute2-master' into next
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
commit
3efdd43667
|
|
@ -1 +1 @@
|
|||
static const char SNAPSHOT[] = "190107";
|
||||
static const char SNAPSHOT[] = "190319";
|
||||
|
|
|
|||
|
|
@ -2359,6 +2359,13 @@ union bpf_attr {
|
|||
* Return
|
||||
* A **struct bpf_tcp_sock** pointer on success, or NULL in
|
||||
* case of failure.
|
||||
*
|
||||
* int bpf_skb_ecn_set_ce(struct sk_buf *skb)
|
||||
* Description
|
||||
* Sets ECN of IP header to ce (congestion encountered) if
|
||||
* current value is ect (ECN capable). Works with IPv6 and IPv4.
|
||||
* Return
|
||||
* 1 if set, 0 if not set.
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
|
|
@ -2457,7 +2464,8 @@ union bpf_attr {
|
|||
FN(spin_lock), \
|
||||
FN(spin_unlock), \
|
||||
FN(sk_fullsock), \
|
||||
FN(tcp_sock),
|
||||
FN(tcp_sock), \
|
||||
FN(skb_ecn_set_ce),
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
* function eBPF program intends to call
|
||||
|
|
@ -2813,6 +2821,8 @@ struct bpf_prog_info {
|
|||
__u32 jited_line_info_rec_size;
|
||||
__u32 nr_prog_tags;
|
||||
__aligned_u64 prog_tags;
|
||||
__u64 run_time_ns;
|
||||
__u64 run_cnt;
|
||||
} __attribute__((aligned(8)));
|
||||
|
||||
struct bpf_map_info {
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ struct in6_flowlabel_req {
|
|||
#define IPV6_JOIN_ANYCAST 27
|
||||
#define IPV6_LEAVE_ANYCAST 28
|
||||
#define IPV6_MULTICAST_ALL 29
|
||||
#define IPV6_ROUTER_ALERT_ISOLATE 30
|
||||
|
||||
/* IPV6_MTU_DISCOVER values */
|
||||
#define IPV6_PMTUDISC_DONT 0
|
||||
|
|
|
|||
|
|
@ -1021,6 +1021,7 @@ enum {
|
|||
TCA_CAKE_INGRESS,
|
||||
TCA_CAKE_ACK_FILTER,
|
||||
TCA_CAKE_SPLIT_GSO,
|
||||
TCA_CAKE_FWMARK,
|
||||
__TCA_CAKE_MAX
|
||||
};
|
||||
#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
|
||||
|
|
|
|||
|
|
@ -174,7 +174,9 @@ static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1])
|
|||
|
||||
strcpy(ifr.ifr_name, rta_getattr_str(tb[IFLA_IFNAME]));
|
||||
if (ioctl(s, SIOCGIFTXQLEN, &ifr) < 0) {
|
||||
fprintf(f, "ioctl(SIOCGIFTXQLEN) failed: %s\n", strerror(errno));
|
||||
fprintf(stderr,
|
||||
"ioctl(SIOCGIFTXQLEN) failed: %s\n",
|
||||
strerror(errno));
|
||||
close(s);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
10
ip/iproute.c
10
ip/iproute.c
|
|
@ -450,10 +450,8 @@ static void print_cache_flags(FILE *fp, __u32 flags)
|
|||
if (flags)
|
||||
print_hex(PRINT_ANY, "flags", "%x>", flags);
|
||||
|
||||
if (jw) {
|
||||
if (jw)
|
||||
jsonw_end_array(jw);
|
||||
jsonw_destroy(&jw);
|
||||
}
|
||||
}
|
||||
|
||||
static void print_rta_cacheinfo(FILE *fp, const struct rta_cacheinfo *ci)
|
||||
|
|
@ -766,7 +764,7 @@ int print_route(struct nlmsghdr *n, void *arg)
|
|||
|
||||
if ((r->rtm_type != RTN_UNICAST || show_details > 0) &&
|
||||
(!filter.typemask || (filter.typemask & (1 << r->rtm_type))))
|
||||
print_string(PRINT_ANY, NULL, "%s ",
|
||||
print_string(PRINT_ANY, "type", "%s ",
|
||||
rtnl_rtntype_n2a(r->rtm_type, b1, sizeof(b1)));
|
||||
|
||||
color = COLOR_NONE;
|
||||
|
|
@ -2079,6 +2077,8 @@ static int iproute_get(int argc, char **argv)
|
|||
if (rtnl_talk(&rth, &req.n, &answer) < 0)
|
||||
return -2;
|
||||
|
||||
new_json_obj(json);
|
||||
|
||||
if (connected && !from_ok) {
|
||||
struct rtmsg *r = NLMSG_DATA(answer);
|
||||
int len = answer->nlmsg_len;
|
||||
|
|
@ -2123,6 +2123,7 @@ static int iproute_get(int argc, char **argv)
|
|||
req.n.nlmsg_flags = NLM_F_REQUEST;
|
||||
req.n.nlmsg_type = RTM_GETROUTE;
|
||||
|
||||
delete_json_obj();
|
||||
free(answer);
|
||||
if (rtnl_talk(&rth, &req.n, &answer) < 0)
|
||||
return -2;
|
||||
|
|
@ -2134,6 +2135,7 @@ static int iproute_get(int argc, char **argv)
|
|||
return -1;
|
||||
}
|
||||
|
||||
delete_json_obj();
|
||||
free(answer);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -455,7 +455,8 @@ int print_rule(struct nlmsghdr *n, void *arg)
|
|||
print_string(PRINT_ANY, "goto", "goto %s", "none");
|
||||
|
||||
if (frh->flags & FIB_RULE_UNRESOLVED)
|
||||
print_null(PRINT_ANY, "unresolved", "unresolved", NULL);
|
||||
print_null(PRINT_ANY, "unresolved",
|
||||
" [unresolved]", NULL);
|
||||
} else if (frh->action == FR_ACT_NOP) {
|
||||
print_null(PRINT_ANY, "nop", "nop", NULL);
|
||||
} else if (frh->action != FR_ACT_TO_TBL) {
|
||||
|
|
|
|||
|
|
@ -270,6 +270,8 @@ struct ib_uverbs_ex_query_device_resp {
|
|||
struct ib_uverbs_tm_caps tm_caps;
|
||||
struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
|
||||
__aligned_u64 max_dm_size;
|
||||
__u32 xrc_odp_caps;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
|
|
|
|||
|
|
@ -255,9 +255,11 @@ enum rdma_nldev_command {
|
|||
RDMA_NLDEV_CMD_GET, /* can dump */
|
||||
RDMA_NLDEV_CMD_SET,
|
||||
|
||||
/* 3 - 4 are free to use */
|
||||
RDMA_NLDEV_CMD_NEWLINK,
|
||||
|
||||
RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */
|
||||
RDMA_NLDEV_CMD_DELLINK,
|
||||
|
||||
RDMA_NLDEV_CMD_PORT_GET, /* can dump */
|
||||
|
||||
/* 6 - 8 are free to use */
|
||||
|
||||
|
|
@ -465,6 +467,10 @@ enum rdma_nldev_attr {
|
|||
RDMA_NLDEV_ATTR_RES_MRN, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_CM_IDN, /* u32 */
|
||||
RDMA_NLDEV_ATTR_RES_CTXN, /* u32 */
|
||||
/*
|
||||
* Identifies the rdma driver. eg: "rxe" or "siw"
|
||||
*/
|
||||
RDMA_NLDEV_ATTR_LINK_TYPE, /* string */
|
||||
|
||||
/*
|
||||
* Always the end
|
||||
|
|
|
|||
|
|
@ -300,6 +300,10 @@ enum {
|
|||
RDMA_OPTION_ID_TOS = 0,
|
||||
RDMA_OPTION_ID_REUSEADDR = 1,
|
||||
RDMA_OPTION_ID_AFONLY = 2,
|
||||
RDMA_OPTION_ID_ACK_TIMEOUT = 3
|
||||
};
|
||||
|
||||
enum {
|
||||
RDMA_OPTION_IB_PATH = 1
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
|||
if (matches(*argv, "zone") == 0) {
|
||||
NEXT_ARG();
|
||||
if (get_u16(&sel.zone, *argv, 10)) {
|
||||
fprintf(stderr, "simple: Illegal \"index\"\n");
|
||||
fprintf(stderr, "connmark: Illegal \"zone\"\n");
|
||||
return -1;
|
||||
}
|
||||
argc--;
|
||||
|
|
@ -87,7 +87,7 @@ parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
|||
if (matches(*argv, "index") == 0) {
|
||||
NEXT_ARG();
|
||||
if (get_u32(&sel.index, *argv, 10)) {
|
||||
fprintf(stderr, "simple: Illegal \"index\"\n");
|
||||
fprintf(stderr, "connmark: Illegal \"index\"\n");
|
||||
return -1;
|
||||
}
|
||||
argc--;
|
||||
|
|
|
|||
Loading…
Reference in New Issue