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

Reply via email to