-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
daemon: Do not attach bpf_host to L3 dev if skb_change_head is unavailable #15343
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is ETH_HLEN
only ever used in bpf_lxc (i.e., not in bpf_host)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@pchaigno In bpf_lxc it's used for NodePort BPF rev-DNAT. |
test-me-please |
Provisioning error: |
Provisioning error: |
k8s-1.19-kernel-4.19 hit a complexity issue. |
I think 4.19 hit the following:
The helper is not available in 4.19. |
Ah, I guess it may be easier to fix? :-S The helper was added in 4.10 but is accessible from tc BPF programs only since v5.8 with commit |
5565d72
to
ef0fdbb
Compare
2160db7
to
ac34e44
Compare
test-net-next |
Previous net-next job had only flakes AFAICS, but even if the changes are fairly simple, I'm not comfortable merging without the full end-to-end tests. test-me-please |
CI 4.9 and GKE:
|
test-4.9 |
test-gke |
CI net-next hit #15455. |
test-net-next |
Converted this to draft, as this is blocked by #15565. |
The PR "datapath: Support NodePort BPF on L2-less devices" [1] has increased the complexity of bpf_host and bpf_lxc by introducing a support for ETH_HLEN=0. Extend the base options by adding ETH_HLEN=0 to stress test the verifier complexity when running on net-next (ETH_HLEN=0 depends on the skb_change_head helper which was introduced in 5.8). [1]: #14858 Suggested-by: Paul Chaignon <paul@cilium.io> Signed-off-by: Martynas Pumputis <m@lambda.lt>
Skip devices which don't have L2 addr, if the kernel doesn't have skb_change_head helper (the case for < 5.8 kernels). Without the helper it is not possible to create the headroom for L2 hdr. Unfortunately, "skb_adjust_room(skb, 14, BPF_ADJ_ROOM_MAC, 0)" cannot be used either, as it does not set "skb->mac_header" which makes the packet to be dropped by [1] when redirecting to another device. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/core/filter.c?h=v5.8#n2118 Signed-off-by: Martynas Pumputis <m@lambda.lt>
ac34e44
to
c14f323
Compare
test-me-please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly to catch the newly-required cilium/loader review, but I also reviewed latest changes.
|
test-4.9 |
test-4.19 |
CI 4.19 hit #15455. Marking as ready-to-merge. |
See commit msgs.