On Tue, Jul 24, 2018 at 9:19 AM, Andrew Wang <[email protected]> wrote: > Then in this case is it possible to replace TCP checksum on ingress with > XDP? How do I test if the skb is writable?
There is no skb in XDP. The helper bpf_l4_csum_replace cannot be used. You need to use other csum functions and can directly modify the packet data. > > 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 (#1399): https://lists.iovisor.org/g/iovisor-dev/message/1399 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]] -=-=-=-=-=-=-=-=-=-=-=-
