Björn Töpel <bjorn.topel@xxxxxxxxx> writes: > On 2021-01-20 13:50, Toke Høiland-Jørgensen wrote: >> Björn Töpel <bjorn.topel@xxxxxxxxx> writes: >> >>> diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h >>> index c001766adcbc..bbc7d9a57262 100644 >>> --- a/include/uapi/linux/bpf.h >>> +++ b/include/uapi/linux/bpf.h >>> @@ -3836,6 +3836,12 @@ union bpf_attr { >>> * Return >>> * A pointer to a struct socket on success or NULL if the file is >>> * not a socket. >>> + * >>> + * long bpf_redirect_xsk(struct xdp_buff *xdp_md, u64 action) >>> + * Description >>> + * Redirect to the registered AF_XDP socket. >>> + * Return >>> + * **XDP_REDIRECT** on success, otherwise the action parameter is returned. >>> */ >> >> I think it would be better to make the second argument a 'flags' >> argument and make values > XDP_TX invalid (like we do in >> bpf_xdp_redirect_map() now). By allowing any value as return you lose >> the ability to turn it into a flags argument later... >> > > Yes, but that adds a run-time check. I prefer this non-checked version, > even though it is a bit less futureproof. That...seems a bit short-sighted? :) Can you actually see a difference in your performance numbers? -Toke