-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unclear kernel requirements for ePPing #49
Comments
Can we try the default (xdp) and fail with a message pointing to the patch and keep running with the tc hook? Enjoy your vacation! |
Closed
simosund
added a commit
to simosund/bpf-examples
that referenced
this issue
Nov 3, 2022
Using the XDP ingress hook requires a newer kernel (needs Toke's patch fixing the verification of global function for BPF_PROG_TYPE_EXT programs) than tc mode, is will likely perform worse than tc if running in generic mode (due to no driver support for XDP). Furthermore, even when XDP works and has driver support, its performance benefit over tc is likely small as the packets are always passed on to the network stack regardless (not creating a fast-path that bypasses the network stack). Therefore, use the tc ingress hook as default instead, and only use XDP if explicitly required by the user (-I/--ingress hook xdp). This partly addresses issue xdp-project#49, as ePPing should no longer by default get the confusing error message from failing verification if the kernel lacks Toke's verifier patch. Signed-off-by: Simon Sundberg <[email protected]>
simosund
added a commit
to simosund/bpf-examples
that referenced
this issue
Nov 8, 2022
Using the XDP ingress hook requires a newer kernel (needs Toke's patch fixing the verification of global function for BPF_PROG_TYPE_EXT programs) than tc mode, is will likely perform worse than tc if running in generic mode (due to no driver support for XDP). Furthermore, even when XDP works and has driver support, its performance benefit over tc is likely small as the packets are always passed on to the network stack regardless (not creating a fast-path that bypasses the network stack). Therefore, use the tc ingress hook as default instead, and only use XDP if explicitly required by the user (-I/--ingress hook xdp). This partly addresses issue xdp-project#49, as ePPing should no longer by default get the confusing error message from failing verification if the kernel lacks Toke's verifier patch. Signed-off-by: Simon Sundberg <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
With the recent PR#47, ePPing requires a very recent kernel patch to run with XDP (which is the default), which I'm guessing very few Linux devices out there currently have. If attempting to run ePPing (in XDP mode) without this patch the verifier will reject the program (with a somewhat confusing error message), and it may be very unclear for a user what the issue is.
So should probably clarify that the issue is due to an unsupported kernel version, by for example adding an error message that includes suggestions to try with a newer kernel (or a kernel with the mentioned patch backported), or possibly to try and run it with the tc hook instead.
Mostly leaving this as a TODO for myself, so I don't forget it when I get back from my vacation.
The text was updated successfully, but these errors were encountered: