bpf: Clarify error expectations from bpf_clone_redirect
authorStanislav Fomichev <sdf@google.com>
Mon, 11 Sep 2023 19:47:30 +0000 (12:47 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 11 Sep 2023 20:29:19 +0000 (22:29 +0200)
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
include/uapi/linux/bpf.h
tools/include/uapi/linux/bpf.h

index 8790b3962e4b85f22593f8f9c9f8d94eaf6981f3..0448700890f77d9a4fffa6fed5c17aa02b9f718b 100644 (file)
@@ -1962,7 +1962,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 8790b3962e4b85f22593f8f9c9f8d94eaf6981f3..0448700890f77d9a4fffa6fed5c17aa02b9f718b 100644 (file)
@@ -1962,7 +1962,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