Commit f25975f4 authored by Toke Høiland-Jørgensen's avatar Toke Høiland-Jørgensen Committed by Daniel Borkmann

bpf, uapi: Remove text about bpf_redirect_map() giving higher performance

The performance of bpf_redirect() is now roughly the same as that of
bpf_redirect_map(). However, David Ahern pointed out that the header file
has not been updated to reflect this, and still says that a significant
performance increase is possible when using bpf_redirect_map(). Remove this
text from the bpf_redirect_map() description, and reword the description in
bpf_redirect() slightly. Also fix the 'Return' section of the
bpf_redirect_map() documentation.

Fixes: 1d233886 ("xdp: Use bulking for non-map XDP_REDIRECT and consolidate code paths")
Reported-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
Link: https://lore.kernel.org/bpf/20200218130334.29889-1-toke@redhat.com
parent e20d3a05
...@@ -1045,9 +1045,9 @@ union bpf_attr { ...@@ -1045,9 +1045,9 @@ union bpf_attr {
* supports redirection to the egress interface, and accepts no * supports redirection to the egress interface, and accepts no
* flag at all. * flag at all.
* *
* The same effect can be attained with the more generic * The same effect can also be attained with the more generic
* **bpf_redirect_map**\ (), which requires specific maps to be * **bpf_redirect_map**\ (), which uses a BPF map to store the
* used but offers better performance. * redirect target instead of providing it directly to the helper.
* Return * Return
* For XDP, the helper returns **XDP_REDIRECT** on success or * For XDP, the helper returns **XDP_REDIRECT** on success or
* **XDP_ABORTED** on error. For other program types, the values * **XDP_ABORTED** on error. For other program types, the values
...@@ -1611,13 +1611,11 @@ union bpf_attr { ...@@ -1611,13 +1611,11 @@ union bpf_attr {
* the caller. Any higher bits in the *flags* argument must be * the caller. Any higher bits in the *flags* argument must be
* unset. * unset.
* *
* When used to redirect packets to net devices, this helper * See also bpf_redirect(), which only supports redirecting to an
* provides a high performance increase over **bpf_redirect**\ (). * ifindex, but doesn't require a map to do so.
* This is due to various implementation details of the underlying
* mechanisms, one of which is the fact that **bpf_redirect_map**\
* () tries to send packet as a "bulk" to the device.
* Return * Return
* **XDP_REDIRECT** on success, or **XDP_ABORTED** on error. * **XDP_REDIRECT** on success, or the value of the two lower bits
* of the **flags* argument on error.
* *
* int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags) * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
* Description * Description
......
...@@ -1045,9 +1045,9 @@ union bpf_attr { ...@@ -1045,9 +1045,9 @@ union bpf_attr {
* supports redirection to the egress interface, and accepts no * supports redirection to the egress interface, and accepts no
* flag at all. * flag at all.
* *
* The same effect can be attained with the more generic * The same effect can also be attained with the more generic
* **bpf_redirect_map**\ (), which requires specific maps to be * **bpf_redirect_map**\ (), which uses a BPF map to store the
* used but offers better performance. * redirect target instead of providing it directly to the helper.
* Return * Return
* For XDP, the helper returns **XDP_REDIRECT** on success or * For XDP, the helper returns **XDP_REDIRECT** on success or
* **XDP_ABORTED** on error. For other program types, the values * **XDP_ABORTED** on error. For other program types, the values
...@@ -1611,13 +1611,11 @@ union bpf_attr { ...@@ -1611,13 +1611,11 @@ union bpf_attr {
* the caller. Any higher bits in the *flags* argument must be * the caller. Any higher bits in the *flags* argument must be
* unset. * unset.
* *
* When used to redirect packets to net devices, this helper * See also bpf_redirect(), which only supports redirecting to an
* provides a high performance increase over **bpf_redirect**\ (). * ifindex, but doesn't require a map to do so.
* This is due to various implementation details of the underlying
* mechanisms, one of which is the fact that **bpf_redirect_map**\
* () tries to send packet as a "bulk" to the device.
* Return * Return
* **XDP_REDIRECT** on success, or **XDP_ABORTED** on error. * **XDP_REDIRECT** on success, or the value of the two lower bits
* of the **flags* argument on error.
* *
* int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags) * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
* Description * Description
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment