Merge branch 'iproute2-master' into iproute2-next
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
commit
fbe7da2306
|
|
@ -8,9 +8,6 @@ ifeq ($(HAVE_MNL),y)
|
||||||
DEVLINKOBJ = devlink.o mnlg.o
|
DEVLINKOBJ = devlink.o mnlg.o
|
||||||
TARGETS += devlink
|
TARGETS += devlink
|
||||||
|
|
||||||
CFLAGS += $(shell $(PKG_CONFIG) libmnl --cflags)
|
|
||||||
LDLIBS += $(shell $(PKG_CONFIG) libmnl --libs)
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: $(TARGETS) $(LIBS)
|
all: $(TARGETS) $(LIBS)
|
||||||
|
|
@ -19,7 +16,9 @@ devlink: $(DEVLINKOBJ)
|
||||||
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
install -m 0755 $(TARGETS) $(DESTDIR)$(SBINDIR)
|
for i in $(TARGETS); \
|
||||||
|
do install -m 0755 $$i $(DESTDIR)$(SBINDIR); \
|
||||||
|
done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(DEVLINKOBJ) $(TARGETS)
|
rm -f $(DEVLINKOBJ) $(TARGETS)
|
||||||
|
|
|
||||||
|
|
@ -283,7 +283,7 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
|
||||||
if (tb[IFLA_CAN_STATE]) {
|
if (tb[IFLA_CAN_STATE]) {
|
||||||
uint32_t state = rta_getattr_u32(tb[IFLA_CAN_STATE]);
|
uint32_t state = rta_getattr_u32(tb[IFLA_CAN_STATE]);
|
||||||
|
|
||||||
fprintf(f, "state %s ", state < CAN_STATE_MAX ?
|
print_string(PRINT_ANY, "state", "state %s ", state < CAN_STATE_MAX ?
|
||||||
can_state_names[state] : "UNKNOWN");
|
can_state_names[state] : "UNKNOWN");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -763,6 +763,7 @@ static int __rtnl_talk_iov(struct rtnl_handle *rtnl, struct iovec *iov,
|
||||||
msg.msg_iovlen = 1;
|
msg.msg_iovlen = 1;
|
||||||
i = 0;
|
i = 0;
|
||||||
while (1) {
|
while (1) {
|
||||||
|
next:
|
||||||
status = rtnl_recvmsg(rtnl->fd, &msg, &buf);
|
status = rtnl_recvmsg(rtnl->fd, &msg, &buf);
|
||||||
++i;
|
++i;
|
||||||
|
|
||||||
|
|
@ -826,6 +827,8 @@ static int __rtnl_talk_iov(struct rtnl_handle *rtnl, struct iovec *iov,
|
||||||
else
|
else
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
|
if (i < iovlen)
|
||||||
|
goto next;
|
||||||
return error ? -i : 0;
|
return error ? -i : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@ rdma: $(RDMA_OBJ) $(LIBS)
|
||||||
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
install -m 0755 $(TARGETS) $(DESTDIR)$(SBINDIR)
|
for i in $(TARGETS); \
|
||||||
|
do install -m 0755 $$i $(DESTDIR)$(SBINDIR); \
|
||||||
|
done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(RDMA_OBJ) $(TARGETS)
|
rm -f $(RDMA_OBJ) $(TARGETS)
|
||||||
|
|
|
||||||
|
|
@ -763,10 +763,28 @@ struct ib_uverbs_sge {
|
||||||
__u32 lkey;
|
__u32 lkey;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ib_uverbs_wr_opcode {
|
||||||
|
IB_UVERBS_WR_RDMA_WRITE = 0,
|
||||||
|
IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1,
|
||||||
|
IB_UVERBS_WR_SEND = 2,
|
||||||
|
IB_UVERBS_WR_SEND_WITH_IMM = 3,
|
||||||
|
IB_UVERBS_WR_RDMA_READ = 4,
|
||||||
|
IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5,
|
||||||
|
IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6,
|
||||||
|
IB_UVERBS_WR_LOCAL_INV = 7,
|
||||||
|
IB_UVERBS_WR_BIND_MW = 8,
|
||||||
|
IB_UVERBS_WR_SEND_WITH_INV = 9,
|
||||||
|
IB_UVERBS_WR_TSO = 10,
|
||||||
|
IB_UVERBS_WR_RDMA_READ_WITH_INV = 11,
|
||||||
|
IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
|
||||||
|
IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
|
||||||
|
/* Review enum ib_wr_opcode before modifying this */
|
||||||
|
};
|
||||||
|
|
||||||
struct ib_uverbs_send_wr {
|
struct ib_uverbs_send_wr {
|
||||||
__aligned_u64 wr_id;
|
__aligned_u64 wr_id;
|
||||||
__u32 num_sge;
|
__u32 num_sge;
|
||||||
__u32 opcode;
|
__u32 opcode; /* see enum ib_uverbs_wr_opcode */
|
||||||
__u32 send_flags;
|
__u32 send_flags;
|
||||||
union {
|
union {
|
||||||
__be32 imm_data;
|
__be32 imm_data;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/sh
|
||||||
|
. lib/generic.sh
|
||||||
|
|
||||||
|
DEV="$(rand_dev)"
|
||||||
|
ts_ip "$0" "Add $DEV dummy interface" link add dev $DEV type dummy
|
||||||
|
ts_ip "$0" "Enable $DEV" link set $DEV up
|
||||||
|
ts_tc "$0" "Add ingress qdisc" qdisc add dev $DEV clsact
|
||||||
|
|
||||||
|
TMP="$(mktemp)"
|
||||||
|
echo filt add dev $DEV ingress pref 1000 matchall action pass >> "$TMP"
|
||||||
|
echo filt add dev $DEV ingress pref 1000 matchall action pass >> "$TMP"
|
||||||
|
|
||||||
|
"$TC" -b "$TMP" 2> $STD_ERR > $STD_OUT
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
ts_err "$0: batch passed when it should have failed"
|
||||||
|
elif [ ! -s $STD_ERR ]; then
|
||||||
|
ts_err "$0: batch produced no error message"
|
||||||
|
else
|
||||||
|
echo "$0: batch failed, as expected"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm "$TMP"
|
||||||
|
ts_ip "$0" "Del $DEV dummy interface" link del dev $DEV
|
||||||
|
|
@ -22,7 +22,9 @@ tipc: $(TIPCOBJ)
|
||||||
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
install -m 0755 $(TARGETS) $(DESTDIR)$(SBINDIR)
|
for i in $(TARGETS); \
|
||||||
|
do install -m 0755 $$i $(DESTDIR)$(SBINDIR); \
|
||||||
|
done
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(TIPCOBJ) $(TARGETS)
|
rm -f $(TIPCOBJ) $(TARGETS)
|
||||||
|
|
|
||||||
|
|
@ -58,14 +58,19 @@ static int nametable_show_cb(const struct nlmsghdr *nlh, void *data)
|
||||||
open_json_object(NULL);
|
open_json_object(NULL);
|
||||||
print_uint(PRINT_ANY, "type", "%-10u",
|
print_uint(PRINT_ANY, "type", "%-10u",
|
||||||
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_TYPE]));
|
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_TYPE]));
|
||||||
|
print_string(PRINT_FP, NULL, " ", "");
|
||||||
print_uint(PRINT_ANY, "lower", "%-10u",
|
print_uint(PRINT_ANY, "lower", "%-10u",
|
||||||
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_LOWER]));
|
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_LOWER]));
|
||||||
|
print_string(PRINT_FP, NULL, " ", "");
|
||||||
print_uint(PRINT_ANY, "upper", "%-10u",
|
print_uint(PRINT_ANY, "upper", "%-10u",
|
||||||
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_UPPER]));
|
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_UPPER]));
|
||||||
|
print_string(PRINT_FP, NULL, " ", "");
|
||||||
print_string(PRINT_ANY, "scope", "%-8s",
|
print_string(PRINT_ANY, "scope", "%-8s",
|
||||||
scope[mnl_attr_get_u32(publ[TIPC_NLA_PUBL_SCOPE])]);
|
scope[mnl_attr_get_u32(publ[TIPC_NLA_PUBL_SCOPE])]);
|
||||||
|
print_string(PRINT_FP, NULL, " ", "");
|
||||||
print_uint(PRINT_ANY, "port", "%-10u",
|
print_uint(PRINT_ANY, "port", "%-10u",
|
||||||
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_REF]));
|
mnl_attr_get_u32(publ[TIPC_NLA_PUBL_REF]));
|
||||||
|
print_string(PRINT_FP, NULL, " ", "");
|
||||||
print_string(PRINT_ANY, "node", "%s", str);
|
print_string(PRINT_ANY, "node", "%s", str);
|
||||||
print_string(PRINT_FP, NULL, "\n", "");
|
print_string(PRINT_FP, NULL, "\n", "");
|
||||||
close_json_object();
|
close_json_object();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue