Then in this case is it possible to replace TCP checksum on ingress with XDP? How do I test if the skb is writable?
On Tue, Jul 24, 2018 at 12:04 PM, Yonghong Song <[email protected]> wrote: > On Tue, Jul 24, 2018 at 1:54 AM, François <[email protected]> wrote: > > On Mon, Jul 23, 2018 at 10:08:08PM +0200, Paul Chaignon wrote: > >> On Mon, Jul 23, 2018 at 02:21:05PM -0400, Andrew Wang wrote: > >> > Hi > >> > > >> > I am writing a bpf program for packet processing and have loaded my > ingress > >> > function at BPF.XDP. > >> > > >> > I'm updating the destination IPv6 address and want to update the TCP > >> > checksum, but when I try to call the helper functions "bpf_csum_diff" > or > >> > "bpf_l4_csum_replace", I get a "unknown func <function name>". Are > these > >> > functions not available for XDP program types? > >> > >> XDP programs cannot use bpf_l4_csum_replace, but they can use > >> bpf_csum_diff since commit 205c380 ("bpf: add csum_diff helper to xdp as > >> well") which landed in v4.16-rc1. > > > > I was thinking maybe those helpers were not available because no skb > > was construct. But after checking, the helper you're mentionning is in > > the tc_cls. Also, the csum_diff helper lies in the same switch > > statement as l4_csum_replace. > > > > Can you elaborate on why one can be used and not the other? > > bpf_csum_diff only accesses packet data and can be used in both cls_act > and xdp. > bpf_l4_csum_replace accesses skb data structure, e.g., it needs to > replace the csum > and hence needs to test whether skb is writable. It also different > calculation based on > the existing checksum state (skb->ip_summed), so bpf_l4_csum_replace > cannot be > used in xdp. > > > > > Thanks! > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#1397): https://lists.iovisor.org/g/iovisor-dev/message/1397 Mute This Topic: https://lists.iovisor.org/mt/23795612/21656 Group Owner: [email protected] Unsubscribe: https://lists.iovisor.org/g/iovisor-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
