Merge branch 'main' into next
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
commit
c01dec8475
|
|
@ -3617,19 +3617,21 @@ static int cmd_dev_flash(struct dl *dl)
|
||||||
|
|
||||||
err = _mnlg_socket_group_add(nlg_ntf, DEVLINK_GENL_MCGRP_CONFIG_NAME);
|
err = _mnlg_socket_group_add(nlg_ntf, DEVLINK_GENL_MCGRP_CONFIG_NAME);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
goto err_socket;
|
||||||
|
|
||||||
err = pipe(pipe_fds);
|
err = pipe(pipe_fds);
|
||||||
if (err == -1)
|
if (err == -1) {
|
||||||
return -errno;
|
err = -errno;
|
||||||
|
goto err_socket;
|
||||||
|
}
|
||||||
pipe_r = pipe_fds[0];
|
pipe_r = pipe_fds[0];
|
||||||
pipe_w = pipe_fds[1];
|
pipe_w = pipe_fds[1];
|
||||||
|
|
||||||
pid = fork();
|
pid = fork();
|
||||||
if (pid == -1) {
|
if (pid == -1) {
|
||||||
close(pipe_r);
|
|
||||||
close(pipe_w);
|
close(pipe_w);
|
||||||
return -errno;
|
err = -errno;
|
||||||
|
goto out;
|
||||||
} else if (!pid) {
|
} else if (!pid) {
|
||||||
/* In child, just execute the flash and pass returned
|
/* In child, just execute the flash and pass returned
|
||||||
* value through pipe once it is done.
|
* value through pipe once it is done.
|
||||||
|
|
@ -3658,6 +3660,7 @@ static int cmd_dev_flash(struct dl *dl)
|
||||||
err = _mnlg_socket_recv_run(dl->nlg, NULL, NULL);
|
err = _mnlg_socket_recv_run(dl->nlg, NULL, NULL);
|
||||||
out:
|
out:
|
||||||
close(pipe_r);
|
close(pipe_r);
|
||||||
|
err_socket:
|
||||||
mnlg_socket_close(nlg_ntf);
|
mnlg_socket_close(nlg_ntf);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3977,8 +3977,8 @@ union bpf_attr {
|
||||||
FN(seq_printf_btf), \
|
FN(seq_printf_btf), \
|
||||||
FN(skb_cgroup_classid), \
|
FN(skb_cgroup_classid), \
|
||||||
FN(redirect_neigh), \
|
FN(redirect_neigh), \
|
||||||
FN(bpf_per_cpu_ptr), \
|
FN(per_cpu_ptr), \
|
||||||
FN(bpf_this_cpu_ptr), \
|
FN(this_cpu_ptr), \
|
||||||
FN(redirect_peer), \
|
FN(redirect_peer), \
|
||||||
FN(task_storage_get), \
|
FN(task_storage_get), \
|
||||||
FN(task_storage_delete), \
|
FN(task_storage_delete), \
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,5 @@
|
||||||
.TH "Flower filter in tc" 8 "22 Oct 2015" "iproute2" "Linux"
|
.TH "Flower filter in tc" 8 "22 Oct 2015" "iproute2" "Linux"
|
||||||
|
|
||||||
"Usage: ct clear\n"
|
|
||||||
" ct commit [force] [zone ZONE] [mark MASKED_MARK] [label MASKED_LABEL] [nat NAT_SPEC] [OFFLOAD_POLICY]\n"
|
|
||||||
" ct [nat] [zone ZONE] [OFFLOAD_POLICY]\n"
|
|
||||||
"Where: ZONE is the conntrack zone table number\n"
|
|
||||||
" NAT_SPEC is {src|dst} addr addr1[-addr2] [port port1[-port2]]\n"
|
|
||||||
" OFFLOAD_POLICY is [policy_pkts PACKETS] [policy_timeout TIMEOUT]\n"
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
flower \- flow based traffic control filter
|
flower \- flow based traffic control filter
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
||||||
|
|
@ -3136,7 +3136,7 @@ static void mptcp_stats_print(struct mptcp_info *s)
|
||||||
out(" subflows:%d", s->mptcpi_subflows);
|
out(" subflows:%d", s->mptcpi_subflows);
|
||||||
if (s->mptcpi_add_addr_signal)
|
if (s->mptcpi_add_addr_signal)
|
||||||
out(" add_addr_signal:%d", s->mptcpi_add_addr_signal);
|
out(" add_addr_signal:%d", s->mptcpi_add_addr_signal);
|
||||||
if (s->mptcpi_add_addr_signal)
|
if (s->mptcpi_add_addr_accepted)
|
||||||
out(" add_addr_accepted:%d", s->mptcpi_add_addr_accepted);
|
out(" add_addr_accepted:%d", s->mptcpi_add_addr_accepted);
|
||||||
if (s->mptcpi_subflows_max)
|
if (s->mptcpi_subflows_max)
|
||||||
out(" subflows_max:%d", s->mptcpi_subflows_max);
|
out(" subflows_max:%d", s->mptcpi_subflows_max);
|
||||||
|
|
|
||||||
|
|
@ -819,8 +819,10 @@ static int print_pedit(struct action_util *au, FILE *f, struct rtattr *arg)
|
||||||
print_uint(PRINT_FP, NULL, "\n\t key #%d at ", i);
|
print_uint(PRINT_FP, NULL, "\n\t key #%d at ", i);
|
||||||
|
|
||||||
err = print_pedit_location(f, htype, key->off);
|
err = print_pedit_location(f, htype, key->off);
|
||||||
if (err)
|
if (err) {
|
||||||
|
free(keys_ex);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
/* In FP, report the "set" command as "val" to keep
|
/* In FP, report the "set" command as "val" to keep
|
||||||
* backward compatibility. Report the true name in JSON.
|
* backward compatibility. Report the true name in JSON.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue