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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to