Implement checksums properly in dataplane
Problem Statement
We currently don't handle checksums properly or at all in several places. The purpose of this task is to get that sorted out.
Acceptance Criteria
- [ ] find all the places we are currently handling, or NOT handling L3 and L4 checksums and get them consistent
- [ ] use helpers like
bpf_l3_cksum_replaceto properly recalculate checksums
Opening this up as a good issue for newcomers interested in getting involved in the ebpf dataplane bits :)
Would like to work on this one o/
@LCaparelli I would recommend joining the AYA discord If you're going to dive in here -> https://aya-rs.dev/community/
I already asked how to fix this bug here https://discord.com/channels/855676609003651072/1039654899408982077
Yup, the nice folks over there already gave me a hand on the other issue I'm working on to improve the build process, thanks for the heads up @astoycos
@LCaparelli as I understand it you may not have time for this one going forward so I'm opening it back up, however if you still want to take this one on please just let us know! :vulcan_salute:
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale - Close this issue with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
Not stale, we still intend this for the v0.7.0 milestone:
/remove-lifecycle stale
However, I suspect @LCaparelli is no longer working on this (do correct me if you still wanted this)? So I think we're back to help wanted.
/help
@shaneutt: This request has been marked as needing help from a contributor.
Guidelines
Please ensure that the issue body includes answers to the following questions:
- Why are we solving this issue?
- To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points?
- Does this issue have zero to low barrier of entry?
- How can the assignee reach out to you for help?
For more details on the requirements of such an issue, please see here and ensure that they are met.
If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.
In response to this:
Not stale, we still intend this for the
v0.7.0milestone:/remove-lifecycle stale
However, I suspect @LCaparelli is no longer working on this (do correct me if you still wanted this)? So I think we're back to help wanted.
/help
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
I have some questions about this issue, I found some functions implemented with bpf_l4_cksum_replace and bpf_l3_cksum_replace like set_ipv4_dest_port and set_ipv4_ip_dst in tc_ingress module, so you mean that we should keep consistent in other module like tc_egress and etc. ?
Consistency for sure, but I also think we just have a lot of hacks in place. I removed the good-first-issue on this one some time ago because basically what we need is someone to deep dive in and suss it all out first and actually figure out exactly what is needed, and then make the patch. So just know that we're happy to support you in this one but it's a bit of a deeper dive!