bpf: Clarify error expectations from bpf_clone_redirect
authorStanislav Fomichev <sdf@google.com>
Mon, 11 Sep 2023 19:47:30 +0000 (12:47 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Oct 2023 12:56:55 +0000 (14:56 +0200)
[ Upstream commit 7cb779a6867fea00b4209bcf6de2f178a743247d ]

Commit 151e887d8ff9 ("veth: Fixing transmit return status for dropped
packets") exposed the fact that bpf_clone_redirect is capable of
returning raw NET_XMIT_XXX return codes.

This is in the conflict with its UAPI doc which says the following:
"0 on success, or a negative error in case of failure."

Update the UAPI to reflect the fact that bpf_clone_redirect can
return positive error numbers, but don't explicitly define
their meaning.

Reported-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20230911194731.286342-1-sdf@google.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/uapi/linux/bpf.h
tools/include/uapi/linux/bpf.h

index 51b9aa6..53bc487 100644 (file)
@@ -1837,7 +1837,9 @@ union bpf_attr {
  *             performed again, if the helper is used in combination with
  *             direct packet access.
  *     Return
- *             0 on success, or a negative error in case of failure.
+ *             0 on success, or a negative error in case of failure. Positive
+ *             error indicates a potential drop or congestion in the target
+ *             device. The particular positive error codes are not defined.
  *
  * u64 bpf_get_current_pid_tgid(void)
  *     Description
index 51b9aa6..53bc487 100644 (file)
@@ -1837,7 +1837,9 @@ union bpf_attr {
  *             performed again, if the helper is used in combination with
  *             direct packet access.
  *     Return
- *             0 on success, or a negative error in case of failure.
+ *             0 on success, or a negative error in case of failure. Positive
+ *             error indicates a potential drop or congestion in the target
+ *             device. The particular positive error codes are not defined.
  *
  * u64 bpf_get_current_pid_tgid(void)
  *     Description